(57)【特許請求の範囲】
【請求項１】
入力された映像からエッジを構成するエッジ点を検出するエッジ検出装置であって、
前記映像を構成するフレーム画像ごとに、第１閾値を超えるエッジ勾配強度を有する画素と、当該画素に隣接する画素であって、前記第１閾値以下かつ前記第１閾値より低い第２閾値以上のエッジ勾配強度を有する画素と、を前記エッジ点として検出するエッジ検出手段と、
現フレーム画像のエッジ点から、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡するエッジ追跡手段と、
前記エッジ検出手段によって検出されたエッジ点のエッジ勾配強度を分布化してガウス混合モデルを生成するとともに、前記エッジ追跡手段によって追跡が成功した前記現フレーム画像のエッジ点のエッジ勾配強度を前記ガウス混合モデルに追加することで前記ガウス混合モデルをフレーム画像ごとに順次更新するモデル生成・更新手段と、
前記モデル生成・更新手段によって生成および更新された前記ガウス混合モデルを構成する個々のガウスモデルから、予め定められた値以上の重みを有するとともに、最も大きい重みを有するガウスモデルを選択し、当該ガウスモデルの平均値から当該ガウスモデルの標準偏差を所定数倍したものを減じた値である第１算出値が、前記平均値を所定値で除した値である第２算出値を超える場合は、前記第１算出値を前記第１閾値とするとともに前記第２算出値を前記第２閾値とし、前記第１算出値が前記第２算出値以下である場合は、前記第２算出値を前記第１閾値とするとともに前記第１算出値を前記第２閾値とする閾値算出手段と、
を備えることを特徴とするエッジ検出装置。
【請求項２】
前記閾値算出手段は、前記平均値に前記標準偏差を所定数倍したものを加えることで、前記第１閾値よりも高い第３閾値を算出し、
前記エッジ検出手段は、前記映像を構成するフレーム画像ごとに、前記第３閾値以下かつ前記第１閾値を超えるエッジ勾配強度を有する画素と、当該画素に隣接する画素であって、前記第１閾値以下かつ前記第２閾値以上のエッジ勾配強度を有する画素と、を前記エッジ点として検出することを特徴とする請求項１に記載のエッジ検出装置。
【請求項３】
前記エッジ検出手段は、前記閾値算出手段によって前記第１閾値および前記第２閾値が算出された場合は、当該算出された前記第１閾値および前記第２閾値を用いて前記エッジ点を検出し、前記閾値算出手段によって前記第１閾値および前記第２閾値が算出されない場合は、予め定められた固定値を前記第１閾値および前記第２閾値として用いて前記エッジ点を検出することを特徴とする請求項１または請求項２に記載のエッジ検出装置。
【請求項４】
前記モデル生成・更新手段は、前記エッジ検出手段によって前記エッジ点が検出できなかった場合、または、前記エッジ追跡手段によって追跡が成功したエッジ点が存在しない場合、前記ガウス混合モデルを破棄し、
前記エッジ検出手段は、前記ガウス混合モデルが破棄された場合、予め定められた固定値を前記第１閾値および前記第２閾値として用いて前記エッジ点を検出することを特徴とする請求項１から請求項３のいずれか一項に記載のエッジ検出装置。
【請求項５】
前記エッジ追跡手段は、現フレーム画像のエッジ点における予め指定されたエッジ点から、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡することを特徴とする請求項１から請求項４のいずれか一項に記載のエッジ検出装置。
【請求項６】
入力された映像からエッジを構成するエッジ点を検出するために、コンピュータを、
前記映像を構成するフレーム画像ごとに、第１閾値を超えるエッジ勾配強度を有する画素と、当該画素に隣接する画素であって、前記第１閾値以下かつ前記第１閾値より低い第２閾値以上のエッジ勾配強度を有する画素と、を前記エッジ点として検出するエッジ検出手段、
現フレーム画像のエッジ点から、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡するエッジ追跡手段、
前記エッジ検出手段によって検出されたエッジ点のエッジ勾配強度を分布化してガウス混合モデルを生成するとともに、前記エッジ追跡手段によって追跡が成功した前記現フレーム画像のエッジ点のエッジ勾配強度を前記ガウス混合モデルに追加することで前記ガウス混合モデルをフレーム画像ごとに順次更新するモデル生成・更新手段、
前記モデル生成・更新手段によって生成および更新された前記ガウス混合モデルを構成する個々のガウスモデルから、予め定められた値以上の重みを有するとともに、最も大きい重みを有するガウスモデルを選択し、当該ガウスモデルの平均値から当該ガウスモデルの標準偏差を所定数倍したものを減じた値である第１算出値が、前記平均値を所定値で除した値である第２算出値を超える場合は、前記第１算出値を前記第１閾値とするとともに前記第２算出値を前記第２閾値とし、前記第１算出値が前記第２算出値以下である場合は、前記第２算出値を前記第１閾値とするとともに前記第１算出値を前記第２閾値とする閾値算出手段、
として機能させることを特徴とするエッジ検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は入力された映像からエッジを検出するエッジ検出装置およびそのプログラムに関するものである。
【背景技術】
【０００２】
従来、エッジ検出処理における代表的な手法としてＣａｎｎｙオペレータが挙げられる。Ｃａｎｎｙオペレータは、入力されたフレーム画像に対して、（１）ガウシアンフィルタによるノイズ除去、（２）ソーベルフィルタによる微分処理、（３）勾配の最大位置検出、（４）ヒステリシス特性を持った閾値処理によるエッジ検出とエッジの補間、という４つの処理を行う（非特許文献１参照）。特に（４）の閾値処理では、まず第１閾値ｈｔｈによってエッジの始点を求め、当該エッジの始点に結合し、第２閾値ｌｔｈ以上のものをエッジと決定することで、不要なエッジを除いた必要なエッジのみを検出している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】J.Canny, “A Computational Approach to Edge Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, .8, 6, .679-698, 1986.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、コンピュータビジョンを始めとする各種画像処理で用いられる映像のエッジ検出処理は、映像を構成するフレーム画像のそれぞれからエッジを正確に検出するために、照明等の撮影条件や被写体に依存したチューニングを施す必要がある。また、調整した設定条件を変更しない場合であっても常にエッジを正確に検出できるように、撮影条件や被写体の条件も一定に保つ必要がある。しかしながら、撮影条件に合わせてチューニングを逐次調整していくことは、人手による場合は試行錯誤が必要で、煩雑な作業であるとともに、エッジ検出の状態を一定に保つことも困難である。
【０００５】
例えば、前記した非特許文献１で提案されたＣａｎｎｙオペレータを用いた映像のエッジ検出処理では、照明等の撮影条件が変化した場合であっても、２つの閾値ｈｔｈ，ｌｔｈが固定された状態で閾値処理が行われていた。従って、従来は、照明等の撮影条件が変化すると、本来エッジではない影がエッジとして検出されたりするため、撮影条件によって検出できるエッジ状態が変化してしまうという問題があった。
【０００６】
本発明はかかる点に鑑みてなされたものであって、照明等の撮影条件が変化した場合であっても、映像を構成するフレーム画像のそれぞれからエッジを正確に検出することができるエッジ検出装置およびそのプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために請求項１に係るエッジ検出装置は、入力された映像からエッジを構成するエッジ点を検出するエッジ検出装置であって、エッジ検出手段と、エッジ追跡手段と、モデル生成・更新手段と、閾値算出手段と、を備える構成とした。
【０００８】
これにより、エッジ検出装置は、エッジ検出手段によって、映像を構成するフレーム画像ごとに、第１閾値を超えるエッジ勾配強度を有する画素と、当該画素に隣接する画素であって、第１閾値以下かつ第１閾値より低い第２閾値以上のエッジ勾配強度を有する画素と、を前記エッジ点として検出する。また、エッジ検出装置は、エッジ追跡手段によって、現フレーム画像のエッジ点から、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡する。また、エッジ検出装置は、モデル生成・更新手段によって、エッジ検出手段によって検出されたエッジ点のエッジ勾配強度を分布化してガウス混合モデルを生成するとともに、エッジ追跡手段によって追跡が成功した前記現フレーム画像のエッジ点のエッジ勾配強度をガウス混合モデルに追加することでガウス混合モデルをフレーム画像ごとに順次更新する。なお、ガウス混合モデルは、フレーム画像ごとに生成または更新してもよく、フレーム画像を所定サイズのブロックで分割した所定ブロックごとに生成または更新してもよい。
【０００９】
また、エッジ検出装置は、閾値算出手段によって、モデル生成・更新手段によって生成および更新されたガウス混合モデルを構成する個々のガウスモデルから、予め定められた値以上の重みを有するとともに、最も大きい重みを有するガウスモデルを選択し、当該ガウスモデルの平均値から当該ガウスモデルの標準偏差を所定数倍したものを減じた値である第１算出値が、平均値を所定値で除した値である第２算出値を超える場合は、第１算出値を前記第１閾値とするとともに第２算出値を第２閾値とし、第１算出値が第２算出値以下である場合は、第２算出値を第１閾値とするとともに第１算出値を第２閾値とする。このように、エッジ検出装置は、Ｃａｎｎｙオペレータを用いたエッジ検出処理において、従来は固定されていた第１閾値および第２閾値を、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルに基づいて自動的に決定することができる。
【００１０】
また、請求項２に係るエッジ検出装置は、請求項１に係るエッジ検出装置において、閾値算出手段が、平均値に標準偏差を所定数倍したものを加えることで、第１閾値よりも高い第３閾値を算出し、エッジ検出手段が、映像を構成するフレーム画像ごとに、第３閾値以下かつ第１閾値を超えるエッジ勾配強度を有する画素と、当該画素に隣接する画素であって、第１閾値以下かつ第２閾値以上のエッジ勾配強度を有する画素と、をエッジ点として検出する構成とした。このように、エッジ検出装置は、第１閾値よりも大きい値を有する第３閾値を、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルに基づいて自動的に決定することができる。
【００１１】
また、請求項３に係るエッジ検出装置は、請求項１または請求項２に係るエッジ検出装置において、エッジ検出手段が、閾値算出手段によって第１閾値および第２閾値が算出された場合は、当該算出された第１閾値および第２閾値を用いてエッジ点を検出し、閾値算出手段によって第１閾値および第２閾値が算出されない場合は、予め定められた固定値を第１閾値および第２閾値として用いてエッジ点を検出する構成とした。このように、エッジ検出装置は、閾値算出手段によって閾値が算出されない場合であっても、予め定められた固定の閾値を用いてフレーム画像からエッジ点を検出することができる。
【００１２】
また、請求項４に係るエッジ検出装置は、請求項１から請求項３のいずれか一項に係るエッジ検出装置において、モデル生成・更新手段が、エッジ検出手段によってエッジ点が検出できなかった場合、または、エッジ追跡手段によって追跡が成功したエッジ点が存在しない場合、ガウス混合モデルを破棄し、エッジ検出手段が、ガウス混合モデルが破棄された場合、予め定められた固定値を第１閾値および第２閾値として用いてエッジ点を検出する構成とした。このように、エッジ検出装置は、入力されたフレーム画像からエッジ点が検出できなかった場合や、検出したエッジ点に類似する前フレーム画像のエッジ点を追跡できなかった場合は、それまでに学習させたガウス混合モデルを破棄し、次の処理で再度ガウス混合モデルを生成する。
【００１３】
また、請求項５に係るエッジ検出装置は、請求項１から請求項４のいずれか一項に係るエッジ検出装置において、エッジ追跡手段が、現フレーム画像のエッジ点における予め指定されたエッジ点から、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡する構成とした。このように、エッジ検出装置は、現フレーム画像から検出された全てのエッジ点を追跡するのではなく、追跡を行いたい特定のエッジ点のみを追跡することができる。
【００１４】
前記課題を解決するために請求項６に係るエッジ検出プログラムは、入力された映像からエッジを構成するエッジ点を検出するために、コンピュータを、エッジ検出手段、エッジ追跡手段、モデル生成・更新手段、閾値算出手段、として機能させる構成とした。
【００１５】
これにより、エッジ検出プログラムは、エッジ検出手段によって、映像を構成するフレーム画像ごとに、第１閾値を超えるエッジ勾配強度を有する画素と、当該画素に隣接する画素であって、第１閾値以下かつ第１閾値より低い第２閾値以上のエッジ勾配強度を有する画素と、を前記エッジ点として検出する。また、エッジ検出プログラムは、エッジ追跡手段によって、現フレーム画像のエッジ点から、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡する。また、エッジ検出プログラムは、モデル生成・更新手段によって、エッジ検出手段によって検出されたエッジ点のエッジ勾配強度を分布化してガウス混合モデルを生成するとともに、エッジ追跡手段によって追跡が成功した前記現フレーム画像のエッジ点のエッジ勾配強度をガウス混合モデルに追加することでガウス混合モデルをフレーム画像ごとに順次更新する。なお、ガウス混合モデルは、フレーム画像ごとに生成および更新してもよく、フレーム画像を所定領域に分割した所定領域ごとに生成および更新してもよい。
【００１６】
また、エッジ検出プログラムは、閾値算出手段によって、モデル生成・更新手段によって生成および更新されたガウス混合モデルを構成する個々のガウスモデルから、予め定められた値以上の重みを有するとともに、最も大きい重みを有するガウスモデルを選択し、当該ガウスモデルの平均値から当該ガウスモデルの標準偏差を所定数倍したものを減じた値である第１算出値が、平均値を所定値で除した値である第２算出値を超える場合は、第１算出値を前記第１閾値とするとともに第２算出値を第２閾値とし、第１算出値が第２算出値以下である場合は、第２算出値を第１閾値とするとともに第１算出値を第２閾値とする。このように、エッジ検出プログラムは、Ｃａｎｎｙオペレータを用いたエッジ検出処理において、従来は固定されていた第１閾値および第２閾値を、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルに基づいて自動的に決定することができる。
【発明の効果】
【００１７】
請求項１および請求項６に係る発明によれば、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルに基づいて決定された第１閾値および第２閾値を用いて、前フレーム以前のエッジ検出結果を加味してエッジ検出を行うため、仮に照明等の撮影条件が変化した場合であっても、映像を構成するフレーム画像のそれぞれからエッジ点を正確に検出することができる。
【００１８】
請求項２に係る発明によれば、第３閾値をエッジ検出の際の上限値として用いることで、第１閾値を超える高いエッジ勾配強度を有する部分（例えば影等）がエッジ点として検出されてしまうことを抑制することができ、エッジ検出の精度をより向上させることができる。
【００１９】
請求項３に係る発明によれば、例えば前フレーム画像からエッジ点が検出されなかった場合等、エッジ検出で用いられる閾値を算出できない状況になった場合であっても、映像を構成するフレーム画像から順次エッジ点を検出することができる。
【００２０】
請求項４に係る発明によれば、入力されたフレーム画像からエッジ点が検出でき、かつ、エッジ点を追跡できた場合のみガウス混合モデルを生成または更新するため、前フレーム画像以前のエッジ点を正確に反映させたガウス混合モデルに基づいて閾値を算出することができる。
【００２１】
請求項５に係る発明によれば、特定のエッジ点のみを追跡するため、全体の処理速度を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係るエッジ検出装置の全体構成を示すブロック図である。
【図２】本発明に係るエッジ検出装置で用いられるガウス混合モデルの一例を示す概略図であり、（ａ）は、予め定められた値以上の重みを有するガウスモデルで構成されたガウス混合モデルを示す図、（ｂ）は、予め定められた値未満の重みを有するガウスモデルで構成されたガウス混合モデルを示す図、である。
【図３】本発明に係るエッジ検出装置で用いられるガウス混合モデルの一例を示す概略図であり、（ａ）は、第１算出値が第２算出値よりも大きい場合のガウス混合モデルを示す図、（ｂ）は、第１算出値が第２算出値よりも小さい場合のガウス混合モデルを示す図、である。
【図４】本発明に係るエッジ検出装置の全体動作を示すフローチャートである。
【図５】本発明に係るエッジ検出装置の実施例を示す概略図であり、（ａ）は、従来のエッジ検出装置をモデルベースカメラトラッキングに適用してエッジ検出を行った場合の図、（ｂ）は、本発明に係るエッジ検出装置をモデルベースカメラトラッキングに適用してエッジ検出を行った場合の図、である。
【図６】本発明に係るエッジ検出装置の実施例を示す概略図であり、（ａ）は、図５（ａ）の番号１−３の拡大図、（ｂ）は、図５（ｂ）の番号１−３の拡大図、である。
【発明を実施するための形態】
【００２３】
本発明の実施形態に係るエッジ検出装置について、図面を参照しながら説明する。なお、以下の説明において、同一の構成については同一の名称及び符号を付し、詳細説明を省略する。
【００２４】
エッジ検出装置１は、入力された映像からエッジを構成するエッジ点を検出するものである。エッジ検出装置１は、例えばモデルベースカメラトラッキングのエッジ検出の際に用いられる。エッジ検出装置１は、ここでは図１に示すように、映像入力手段１０と、エッジ検出手段２０と、検出結果出力手段３０と、エッジ追跡手段４０と、モデル生成・更新手段５０と、閾値算出手段６０と、を備えている。以下、エッジ検出装置１の各要素について、詳細に説明する。
【００２５】
映像入力手段１０は、図１に示すように、外部から映像が入力されるものである。映像入力手段１０は、例えば映像インターフェイスであり、入力された映像を、当該映像を構成するフレーム画像ごとにエッジ検出手段２０に出力する。
【００２６】
エッジ検出手段２０は、映像を構成するフレーム画像ごとにエッジ点を検出（抽出）するものである。ここで、エッジ検出手段２０の基本的な構成は、前記したＣａｎｎｙオペレータと同様である。すなわち、エッジ検出手段２０は、入力されたフレーム画像に対してガウシアンフィルタを用いてノイズを除去して画像を平滑化する。次に、エッジ検出手段２０は、平滑後の画像に対してソーベルフィルタによって微分処理を行い、各画素のエッジ勾配強度とエッジ方向を算出する。次に、エッジ検出手段２０は、エッジ勾配強度が極大となる画素を特定し、その画素をエッジ点の候補とする。そして、エッジ検出手段２０は、閾値処理によってエッジ点の候補を絞り込み、エッジ点を検出する。
【００２７】
エッジ検出手段２０は、前記した閾値処理において、第１閾値ｈｔｈと、第１閾値ｈｔｈよりも低い第２閾値ｌｔｈと、の２つの閾値を用いてエッジ点を検出する。この第１閾値ｈｔｈは、フレーム画像中における濃いエッジ点、すなわちエッジ勾配強度の高いエッジ点を検出するための閾値である。また、第２閾値ｌｔｈは、フレーム画像中における薄いエッジ点、すなわちエッジ勾配強度の低いエッジ点を検出するための閾値である。
【００２８】
エッジ検出手段２０は、まず第１閾値ｈｔｈを超えるエッジ勾配強度を有する画素をエッジ点として検出する。そして、エッジ検出手段２０は、第１閾値ｈｔｈ以下かつ第２閾値ｌｔｈ以上のエッジ勾配強度を有する画素であって、第１閾値ｈｔｈによってエッジ点として検出された画素に隣接する（接続する）画素をエッジ点として検出する。なお、エッジ検出手段２０において用いられる第１閾値ｈｔｈおよび第２閾値ｌｔｈの詳細については後記する。
【００２９】
ここで、エッジ検出手段２０は、前記した閾値処理において、後記する閾値算出手段６０によって算出される第１閾値ｈｔｈおよび第２閾値ｌｔｈか、予め定められた固定の第１閾値ｈｔｈおよび第２閾値ｌｔｈ（以下、初期閾値という）か、のいずれかを用いてエッジ点を検出する。例えば、エッジ検出手段２０は、後記する閾値算出手段６０において第１閾値ｈｔｈおよび第２閾値ｌｔｈが算出された場合は、当該算出された閾値を用いてエッジ検出処理を行う。
【００３０】
一方、エッジ検出手段２０が初期閾値を用いてエッジ検出処理を行うのは、例えば後記する閾値算出手段６０によって第１閾値ｈｔｈおよび第２閾値ｌｔｈが算出されなかった場合である。そして、このように閾値算出手段６０によって第１閾値ｈｔｈおよび第２閾値ｌｔｈが算出されない場合としては、例えば、映像入力手段１０から入力されたフレーム画像が映像の１枚目（最初）のフレームでありガウス混合モデルがまだ生成されていない場合、２枚目以降のフレーム画像が入力されたものの、前回のエッジ検出処理でエッジ点を検出することができずガウス混合モデルが破棄された場合、２枚目以降のフレーム画像が入力されたものの、エッジ追跡手段４０において追跡が成功したエッジ点が存在せずガウス混合モデルが破棄された場合、等が挙げられる。このように、エッジ検出装置１は、後記する閾値算出手段６０によって閾値が算出されない場合であっても、予め定められた固定の閾値（初期閾値）を用いてフレーム画像からエッジ点を検出することができる。従って、エッジ検出装置１は、前記したように、エッジ検出で用いられる閾値を算出できない状況になった場合であっても、映像を構成するフレーム画像から順次エッジ点を検出することができる。なお、ガウス混合モデルの生成や破棄の詳細については後記する。
【００３１】
ここで、エッジ検出手段２０は、後記する閾値算出手段６０によって、第１閾値ｈｔｈおよび第２閾値ｌｔｈに加えて第３閾値ｇｔｈが算出された場合は、当該第３閾値ｇｔｈをエッジ勾配強度の上限値として用いて閾値処理を行うことが好ましい。この第３閾値ｇｔｈは、前記した第１閾値ｈｔｈによって、例えば影等の実際にはエッジ点ではない部分がエッジ点として検出されてしまうことを抑制するための閾値である。
【００３２】
この場合、エッジ検出手段２０は、まず第３閾値ｇｔｈ以下かつ第１閾値ｈｔｈを超えるエッジ勾配強度を有する画素をエッジ点として検出する。そして、エッジ検出手段２０は、第１閾値ｈｔｈ以下かつ第２閾値ｌｔｈ以上のエッジ勾配強度を有する画素であって、第１閾値ｈｔｈによってエッジ点として検出した画素に隣接する（接続する）画素をエッジ点として検出する。このように、エッジ検出装置１は、第３閾値をエッジ検出の際の上限値として用いることで、より限定された条件の下でエッジ検出を行うことができるため、エッジ検出の精度をより向上させることができる。なお、エッジ検出手段２０において用いられる第３閾値ｇｔｈの詳細については後記する。
【００３３】
エッジ検出手段２０には、図１に示すように、映像入力手段１０から映像を構成するフレーム画像が順次入力される。そして、エッジ検出手段２０は、前記した手法によってフレーム画像からエッジ点を検出し、図１に示すように、その検出結果を検出結果出力手段３０と、エッジ追跡手段４０と、モデル生成・更新手段５０と、に出力する。
【００３４】
検出結果出力手段３０は、エッジ検出手段２０によるエッジ検出の結果を出力するものである。エッジ検出手段２０は、図１に示すように、エッジ検出手段２０から入力された検出結果を、例えば図示しない外部のパーソナルコンピュータや記憶手段等に出力する。
【００３５】
エッジ追跡手段４０は、現在のフレーム画像（以下、現フレーム画像という）のエッジ点から、これに対応する前回のフレーム画像（以下、前フレーム画像という）のエッジ点を追跡するものである。エッジ追跡手段４０は、具体的には現フレーム画像のエッジ点と前フレーム画像のエッジ点とを比較し、現フレーム画像のエッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡する。また、エッジ追跡手段４０は、例えば現フレーム画像のエッジ点を基準として、当該エッジ点によって構成されるエッジの法線方向の所定範囲（所定長さ）に探索を行うことで、前フレーム画像のエッジ点を追跡する。なお、エッジ追跡手段４０によって、エッジの法線方向に探索する範囲は特に限定されないが、例えば３０ピクセルとすることが好ましい。そして、エッジ追跡手段４０は、前フレーム画像のエッジ点と類似する現フレームのエッジ点、すなわち追跡に成功した現フレーム画像のエッジ点をエッジ追跡結果として出力する
【００３６】
エッジ追跡手段４０は、映像入力手段１０から入力されたフレーム画像が２枚目以降のフレームであって、前回のエッジ検出処理でエッジ点が検出されている場合は、エッジ追跡を行う。一方、エッジ追跡手段４０は、映像入力手段１０から入力されたフレーム画像が映像の１枚目（最初）のフレームである場合や、映像入力手段１０から入力されたフレーム画像が２枚目以降のフレームであって、前回のエッジ検出処理でエッジ点が検出されていない場合は、追跡対象となるエッジ点（以下、追跡対象エッジという）が存在しないため、エッジ追跡を行わない。
【００３７】
ここで、エッジ追跡手段４０は、現フレーム画像から検出された全てのエッジ点について、当該エッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡してもよいが、例えば現フレーム画像の特定のエッジ点からのみ追跡を行っても構わない。この場合、エッジ追跡手段４０には、例えば図１の破線矢印で示すように、現フレーム画像から検出されたエッジ点のうちの特定のエッジ点を示す追跡対象エッジが入力される。この追跡対象エッジは、例えばユーザが現フレーム画像から検出されたエッジ点のうちの特定のエッジ点を直接指定する等により入力することができる。そして、エッジ追跡手段４０は、当該追跡対象エッジが示すエッジ点とエッジ勾配強度およびエッジ方向が類似する前フレーム画像のエッジ点を追跡する。このように、エッジ検出装置１は、現フレーム画像から検出された全てのエッジ点を追跡するのではなく、追跡を行いたい特定のエッジ点のみを追跡することができ、全体の処理速度を向上させることができる。
【００３８】
エッジ追跡手段４０には、図１に示すように、エッジ検出手段２０から現フレーム画像のエッジ点が入力される。そして、エッジ追跡手段４０は、前記した手法によってエッジ点を追跡し、追跡が成功した現フレーム画像のエッジ点をモデル生成・更新手段５０に出力する。
【００３９】
モデル生成・更新手段５０は、ガウス混合モデルを生成および更新するものである。ここで、ガウス混合モデルとは、入力された映像におけるエッジ点の特徴、すなわちエッジ勾配強度をモデル化したものである。ガウス混合モデルは、より詳細には、映像を構成するフレーム画像から検出されたエッジ点のエッジ勾配強度を分布化したものである。
【００４０】
ここで、エッジ検出手段２０によってフレーム画像から検出されたエッジ点は、映像においては照明等の撮影条件によってエッジ勾配強度が大きく変化する。従って、フレーム画像のエッジ強度を分布化したものを図示すると、例えば図２（ａ）に示すように、単純なガウスモデルではなく、複数のガウスモデル（ここではガウスモデルＧ１，Ｇ２，Ｇ３）が混合したガウス混合モデルとなる。なお、図２（ａ）、（ｂ）に示すガウス混合モデルは、映像を構成するフレーム画像（または後記するようにその所定ブロック）に対してソーベルフィルタをかけた結果と考えることもできる。
【００４１】
なお、図２（ａ）、（ｂ）において、横軸の｜ｇ｜はエッジ点のエッジ勾配強度であり、縦軸のｗは重みである。この重みｗは、同じエッジ勾配強度を有するエッジ点の数が増える程大きくなるパラメータである。例えば図２（ａ）では、勾配強度｜ｇ｜が１００の地点における重みｗが最も大きくなっているため、前フレーム画像以前のエッジ検出処理の結果として、勾配強度｜ｇ｜が１００のエッジ点が最も多く検出されていることを示している。
【００４２】
モデル生成・更新手段５０は、エッジ検出手段２０によって検出されたエッジ点のエッジ勾配強度を分布化することでガウス混合モデルを生成する。モデル生成・更新手段５０は、より具体的には、エッジ検出手段２０によって現フレーム画像のエッジ点が検出されると、当該エッジ点のエッジ勾配強度ごとに分類およびカウントし、例えばヒストグラムのように同じエッジ勾配強度を有するエッジ点を積み上げたものをモデル化することで、ガウス混合モデルを生成する。
【００４３】
そして、モデル生成・更新手段５０は、エッジ検出手段２０によって現フレーム画像の次のフレーム画像のエッジ点が検出され、かつ、エッジ追跡手段４０によってエッジ点の追跡が行われた場合、当該追跡が成功した現フレーム画像のエッジ点のエッジ勾配強度を既に生成されているガウス混合モデルに追加することで、ガウス混合モデルを更新する。従って、ガウス混合モデルは、エッジ点が入力されるごとに更新され、図２（ａ）、（ｂ）で図示した山の形がその都度変化することになる。なお、モデル生成・更新手段５０は、その内部または外部に、ガウス混合モデルを記憶させる図示しない記憶手段を備えている。
【００４４】
ここで、モデル生成・更新手段５０は、エッジ検出手段２０によって現フレーム画像からエッジ点を検出することができなかった場合や、エッジ追跡手段４０によって追跡が成功したエッジ点が存在しなかった場合は、既に生成または更新したガウス混合モデルを破棄する。このように、エッジ検出装置１は、入力されたフレーム画像からエッジ点が検出でき、かつ、エッジ点を追跡できた場合のみモデル生成・更新手段５０によってガウス混合モデルを生成または更新するため、前フレーム画像以前のエッジ点を正確に反映させたガウス混合モデルに基づいて閾値を算出することができる。
【００４５】
また、モデル生成・更新手段５０は、エッジ点が検出されたフレーム画像単位でガウス混合モデルを生成し、当該フレーム画像ごとにガウス混合モデルを順次更新してもよいが、例えばフレーム画像を所定幅×所定高さのブロックに分割し、分割されたブロックごとにガウス混合モデルを生成・更新しても構わない。分割するブロックの数は特に限定されないが、例えばフレーム画像を縦１０個×横１０個のブロック（例えば、画像サイズが６４０×４８０ピクセルの場合、１ブロックが６４×４８ピクセル）に分割して処理を行うことができる。エッジ検出装置１は、このようにフレーム画像のブロックごとにガウス混合モデルを生成・更新することで、エッジ検出の処理速度を向上させることができる。
【００４６】
モデル生成・更新手段５０には、図１に示すように、エッジ検出手段２０から現フレーム画像のエッジ点が入力されるか、エッジ追跡手段４０から追跡が成功したエッジ点が入力される。そして、モデル生成・更新手段５０は、前記手法によってガウス混合モデルを生成または更新し、当該生成または更新したガウス混合モデルを閾値算出手段６０に出力する。
【００４７】
閾値算出手段６０は、エッジ検出手段２０における閾値処理で用いられる第１閾値ｈｔｈおよび第２閾値ｌｔｈを算出するものである。閾値算出手段６０は、具体的には以下の手順により第１閾値ｈｔｈおよび第２閾値ｌｔｈを算出する。
【００４８】
まず、閾値算出手段６０は、モデル生成・更新手段５０によって、例えば図２（ａ）に示すようなガウス混合モデルが生成または更新されている場合、当該ガウス混合モデルを構成するガウスモデルＧ１，Ｇ２，Ｇ３の中から、予め定められたｗｍｉｎ以上の重みｗを有するガウスモデルＧ１，Ｇ３を選択する。ここで、予め定められたｗｍｉｎは、０〜１の範囲で設定され、ここでは例えば０．７に設定される。
【００４９】
次に、閾値算出手段６０は、図２（ａ）に示すように、予め定められたｗｍｉｎ以上の重みｗを有するガウスモデルが複数存在する場合は、より高い重みｗを有するガウスモデルＧ１を選択する。これらの処理は、ガウス混合モデルを構成するガウスモデルの中で、最も学習したエッジ点の数が多く、最も信頼性の高いガウスモデルを選択することに相当する。
【００５０】
そして、閾値算出手段６０は、選択したガウスモデルＧ１の平均値と標準偏差とを用いて第１算出値および第２算出値を算出する。第１算出値は、下記式（１）に示すように、ガウスモデルの平均値μからガウスモデルの標準偏差σをｋ倍したものを減じることで算出することができる。また、第２算出値は、下記式（２）に示すように、ガウスモデルの平均値μを２で除することで算出することができる。
【００５１】
第１算出値＝μ-ｋσ  ・・・式（１）
第２算出値＝μ／２  ・・・式（２）
【００５２】
そして、閾値算出手段６０は、第１算出値が第２算出値を超える場合は、第１算出値を第１閾値ｈｔｈとし、第２算出値を第２閾値ｌｔｈとする。一方、閾値算出手段６０は、第１算出値が第２算出値以下である場合は、第２算出値を第１閾値ｈｔｈとし、第１算出値を第２閾値ｌｔｈとする。これらの処理は、例えば以下の式（３）のように表わすことができる。
【００５３】
Ｉｆ（μ-ｋσ）＞μ／２
ｈｔｈ＝μ-ｋσ，ｌｔｈ＝μ／２
ｅｌｓｅ，
ｈｔｈ＝μ／２，ｌｔｈ＝μ-ｋσ  ・・・式（３）
【００５４】
ここで、式（１）〜（３）におけるｋは、例えば１．０〜２．５の範囲とすることが好ましく、１．５とすることがより好ましい。式（３）におけるｋが１．０未満である場合、エッジ検出の条件が厳しすぎるためエッジ点を検出できない場合があり、式（３）におけるｋが２．５を超える場合、エッジ検出の条件が緩すぎるためエッジ点ではない画素をエッジ点として検出してしまう可能性がある。
【００５５】
一方、閾値算出手段６０は、モデル生成・更新手段５０によって、例えば図２（ｂ）に示すようなガウス混合モデルが生成または更新されている場合、当該ガウス混合モデルを構成するガウスモデルＧ４，Ｇ５，Ｇ６の中に予め定められたｗｍｉｎ以上の重みｗを有するガウスモデルが存在しないため、当該ガウスモデルを選択せず、第１閾値ｈｔｈおよび第２閾値ｌｔｈも算出しない。従って、この場合は、エッジ検出手段２０は予め定められた初期閾値を用いてフレーム画像からエッジ点を検出することになる。
【００５６】
ここで、閾値算出手段６０は、第１閾値ｈｔｈおよび第２閾値ｌｔｈに加えて、第３閾値ｇｔｈを算出することが好ましい。この第３閾値ｇｔｈは、第１閾値ｈｔｈよりも大きい値を有しており、エッジ検出の際の上限の閾値として機能するものである。このように、エッジ検出装置１は、第３閾値ｇｔｈをエッジ検出の際の上限値として用いることで、第１閾値ｈｔｈを超える高いエッジ勾配強度を有する部分（例えば影等）がエッジ点として検出されてしまうことを抑制することができ、エッジ検出の精度をより向上させることができる。
【００５７】
閾値算出手段６０は、前記した図３（ａ）に示すように、モデル生成・更新手段５０によって生成または更新されたガウス混合モデルから、予め定められたｗｍｉｎ以上の重みｗを有し、かつ最も高い大きい重みｗを有するガウスモデルＧ１を選択した後、下記式（４）に示すように、ガウスモデルＧ１の平均値μにガウスモデルの標準偏差σをｋ倍したものを加えることで、第３閾値ｇｔｈを算出する。なお、下記式（４）におけるｋは、前記した式（１）、（３）と同様に、例えば１．０〜２．５の範囲とすることが好ましく、１．５とすることがより好ましい。
【００５８】
ｇｔｈ＝μ＋ｋσ  ・・・式（４）
【００５９】
閾値算出手段６０によって算出される第１閾値ｈｔｈ、第２閾値ｌｔｈおよび第３閾値ｇｔｈは、例えば前記した第１算出値が第２算出値を超える場合であって、ｋを１．５に設定した場合、図３（ａ）のように図示することができる。一方、閾値算出手段６０によって算出される第１閾値ｈｔｈ、第２閾値ｌｔｈおよび第３閾値ｇｔｈは、前記した第１算出値が第２算出値以下である場合であって、ｋを１．５に設定した場合、例えば図３（ｂ）のように図示することができる。このように、第１算出値が第２算出値以下である場合とは、例えば図３（ｂ）に示すように、ガウスモデルの山が横に広く、「μ-ｋσ」が「μ／２」以下となってしまう場合のことを意味している。
【００６０】
閾値算出手段６０には、図１に示すように、モデル生成・更新手段５０からガウス混合モデルが入力される。そして、閾値算出手段６０は、前記した手法によって第１閾値ｈｔｈ、第２閾値ｌｔｈおよび第３閾値ｇｔｈを算出し、これらをエッジ検出手段２０に出力する。
【００６１】
以上のような構成を備えるエッジ検出装置１は、Ｃａｎｎｙオペレータを用いたエッジ検出処理において、従来は固定されていた第１閾値ｈｔｈおよび第２閾値ｌｔｈを、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルに基づいて自動的に決定することができる。従って、エッジ検出装置１によれば、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルに基づいて決定された第１閾値ｈｔｈおよび第２閾値ｌｔｈを用いて、前フレーム以前のエッジ検出結果を加味してエッジ検出を行うため、仮に照明等の撮影条件が変化した場合であっても、映像を構成するフレーム画像のそれぞれからエッジ点を正確に検出することができる。
【００６２】
また、エッジ検出装置１は、映像のエッジを利用した自動処理等に関するアルゴリズムに組み込むことで、精度が高く頑健なシステムを構築することができる。例えば、エッジ検出装置１は、生産ラインにおいて製品のエッジを検出するために利用される場合においても、照明環境等を厳密に拘束することなく、エッジを正確に検出することができる。
【００６３】
以下、エッジ検出装置１の動作について、図４を参照しながら簡単に説明する。なお、以下では、説明の便宜上、エッジ検出装置１はフレーム画像から必ずエッジ点を検出できるということを前提として説明を行う。
【００６４】
まず、エッジ検出装置１は、映像入力手段１０に対して例えば外部の図示しない映像記憶手段から映像が入力された場合（ステップＳ１においてＹｅｓ）、エッジ検出手段２０によって、映像を構成する現フレーム画像からエッジ点を検出する（ステップＳ２）。その際、エッジ検出手段２０は、予め定められた初期閾値を第１閾値ｈｔｈおよび第２閾値ｌｔｈとして用いてエッジ点を検出する。
【００６５】
次に、エッジ検出装置１は、エッジ追跡手段４０によって、現フレーム画像から検出されたエッジ点が追跡すべき追跡対象エッジがあるかどうかを判定する（ステップＳ３）。そして、エッジ検出装置１は、追跡対象エッジがない場合（ステップＳ３においてＮｏ）、モデル生成・更新手段５０によって、ガウス混合モデルを生成する（ステップＳ４）。なお、追跡対象エッジがない場合とは、前記したように、例えば現フレーム画像が映像の１枚目（最初）のフレームである場合等が挙げられる。
【００６６】
次に、エッジ検出装置１は、閾値算出手段６０によって、モデル生成・更新手段５０によって生成されたガウス混合モデルを構成する個々のガウスモデルの中に、予め定められたｗｍｉｎ以上の重みｗを有するガウスモデルが存在するか否かを判定する（ステップＳ５）。そして、エッジ検出装置１は、当該予め定められたｗｍｉｎ以上の重みｗを有するガウスモデルが存在する場合（ステップＳ５においてＹｅｓ）、閾値（第１閾値ｈｔｈ、第２閾値ｌｔｈおよび第３閾値ｇｔｈ）を算出し（ステップＳ６）、ステップＳ１に戻る。
【００６７】
一方、エッジ検出装置１は、ステップＳ３において、追跡対象エッジがある場合（ステップＳ３においてＹｅｓ）、エッジ追跡手段４０によって、現フレーム画像のエッジ点から前フレーム画像のエッジ点を追跡し、当該前フレーム画像のエッジ点とエッジ勾配強度およびエッジ方向が類似する現フレームのエッジ点を検出する（ステップＳ７）。次に、エッジ検出装置１は、モデル生成・更新手段５０によって、追跡に成功したエッジ点があるか否かを判定する（ステップＳ８）。そして、エッジ検出装置１は、追跡に成功したエッジ点がある場合（ステップＳ８においてＹｅｓ）、モデル生成・更新手段５０によって、既に生成されたガウス混合モデルを更新し（ステップＳ９）、ステップＳ５に進む。
【００６８】
一方、エッジ検出装置１は、追跡に成功したエッジ点がない合（ステップＳ８においてＮｏ）、モデル生成・更新手段５０によって、既に生成されたガウス混合モデルを破棄し（ステップＳ１０）、ステップＳ１に戻る。
【００６９】
以上のような動作を行うエッジ検出装置１は、前フレーム画像以前のエッジ検出結果を学習させたガウス混合モデルを生成または順次更新し、当該ガウス混合モデルに基づいて、前フレーム以前のエッジ検出結果を加味してエッジ検出を行うため、仮に照明等の撮影条件が変化した場合であっても、映像を構成するフレーム画像のそれぞれからエッジ点を正確に検出することができる。
【００７０】
［エッジ検出プログラム］
ここで、前記したエッジ検出装置１は、一般的なコンピュータを、前記した各手段として機能させるプログラムにより動作させることで実現することができる。このプログラムは、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。
【実施例】
【００７１】
以下、本発明の効果を確認する実施例について説明する。本実施例では、本発明に係るエッジ検出装置（以下、本手法という）と、従来技術に係るエッジ検出装置（以下、従来手法という）と、をモデルベースカメラトラッキングのエッジ検出にそれぞれ適用して比較を行った。ここで、モデルベースカメラトラッキングとは、実空間の３次元形状のエッジ点をカメラ撮影映像で追跡し、予め用意した３次元モデルと比較することで、カメラ姿勢を推定するものである。すなわち、モデルベーストラッキングでは、カメラ撮影映像におけるエッジ点を検出し、当該検出したエッジ点と予め用意した３次元モデルのエッジ点とをマッチングすることで、撮影時におけるカメラ姿勢を推定する。
【００７２】
ここで、本実施例では、従来手法を再現するために、モデルベースカメラトラッキングのエッジ検出処理において、固定の第１閾値ｈｔｈ（＝２００）および第２閾値ｌｔｈ（＝１００）によってエッジ検出を行った。また、本手法を再現するために、モデルベースカメラトラッキングのエッジ検出処理において、予め生成しておいたガウス混合モデルから算出した第１閾値ｈｔｈおよび第２閾値ｌｔｈによってエッジ検出を行った。
【００７３】
次に、従来手法および本手法で得られたエッジ点と、予め用意した３次元モデルの対応するエッジ点と、をマッチングすることでカメラの姿勢情報（３つの並進パラメータｔ１〜ｔ３と、３つの回転パラメータｒ１〜ｒ３）を算出した。そして、予めＣ言語ライブラリ「ＡＲＴｏｏｌＫｉｔ」を用いて推定しておいた基準となるカメラの姿勢情報（３つの並進パラメータｔ１〜ｔ３と、３つの回転パラメータｒ１〜ｒ３）と、前記算出したカメラの姿勢情報との差を求めることで、カメラの姿勢誤差を求めた。また、同時に、カメラの姿勢誤差の時間的変化（標準偏差）についても算出した。その結果を表１に示す。なお、表１における「エラー」は、前記したカメラの姿勢誤差を示しており、「ジッター」は、前記したカメラの姿勢誤差の時間的変化を示している。
【００７４】
【表１】
0005677234.tif 000002
【００７５】
表１に示すように、従来手法では、並進パラメータと回転パラメータのエラーの平均は、それぞれ４．２６５ｍｍ、０．４７４度であり、並進パラメータと回転パラメータのジッターの平均は、それぞれ１．４０３ｍｍ／ｆｒａｍｅ、０．１８３°／ｆｒａｍｅであった。一方、本手法では、並進パラメータと回転パラメータのエラーの平均は、それぞれ３．９１９ｍｍ、０．４０９度であり、並進パラメータと回転パラメータのジッターの平均は、それぞれ１．２８９ｍｍ／ｆｒａｍｅ、０．１６６°／ｆｒａｍｅであった。
【００７６】
このように、モデルベースカメラトラッキングにおいて、本手法を用いてエッジ検出を行うと、カメラ撮影映像からエッジ点を正確に検出することができるため、従来手法よりも、エラーとジッターが低下することがわかる。また、従来手法では、カメラ撮影映像から検出したエッジ点と、予め用意した３次元モデルのエッジ点と、をマッチングする際に、平均で１．８９９８個の対応する（類似する）エッジ点の候補があったが、本手法では、平均で１．７９３個であった。従って、本手法を用いてエッジ検出を行うと、従来手法よりも誤ったエッジ点を追跡する可能性が減少することがわかる。
【００７７】
次に、本手法および従来手法によってエッジ検出を行った実際の画像を図５および図６に示す。ここで、図５（ａ）における右上の図は、本手法および従来手法によってエッジ検出を行った元の画像を示している。また、図６（ａ）、（ｂ）は、それぞれ図５（ａ）、（ｂ）の番号１〜３を拡大したものを示している。また、図５（ｂ）および図６（ｂ）におけるエッジに沿って描画された空の円と塗りつぶしの円は、それぞれ、予め用意した３次元モデルのエッジ点と本手法によって検出したエッジ点とを示しており、当該２つの円を通る短い線分は、本手法によって検出したエッジ点の追跡範囲を示している。
【００７８】
従来手法によるエッジ検出結果を参照すると、図６（ａ）における符号ｅ１および符号ｅ２に示すように、影の部分が誤ってエッジとして検出されていることがわかる。また、図６（ａ）の符号ｅ３に示すように、エッジではない部分が誤ってエッジとして検出されていることがわかる。
【００７９】
一方、本手法によるエッジ検出結果を参照すると、図６（ｂ）に示すように、影の部分やエッジではない部分はエッジとして検出されていないことがわかる。図６（ａ）、（ｂ）における箱の縁の部分のエッジＢ１，Ｂ２を比較すると、図６（ａ）ではエッジＢ１周辺に他のエッジが多数検出されているのに対し、図６（ｂ）ではエッジＢ２周辺に他のエッジが検出されていない。従って、モデルベースカメラトラッキングにおいて、例えばこの箱の３次元モデルを予め用意してトラッキングを行うと、周辺に他の無駄なエッジが検出されている従来手法（図６（ａ）参照）と比較して、周辺に他の無駄なエッジが検出されていない本手法（図６（ｂ）参照）のほうがトラッキングの精度により優れていることがわかる。
【００８０】
以上、本発明に係るエッジ検出装置について、発明を実施するための形態により具体的に説明したが、本発明の趣旨はこれらの記載に限定されるものではなく、特許請求の範囲の記載に基づいて広く解釈されなければならない。また、これらの記載に基づいて種々変更、改変等したものも本発明の趣旨に含まれることはいうまでもない。
【符号の説明】
【００８１】
１  エッジ検出装置
１０  映像入力手段
２０  エッジ検出手段
３０  検出結果出力手段
４０  エッジ追跡手段
５０  モデル生成・更新手段
６０  閾値算出手段
【図１】
0005677234.tif 000003
【図２】
0005677234.tif 000004
【図３】
0005677234.tif 000005
【図４】
0005677234.tif 000006
【図５】
0005677234.tif 000007
【図６】
0005677234.tif 000008