(57)【特許請求の範囲】
【請求項１】
入力画像から物体の第１の部分を検出する第１の検出手段と、
前記入力画像から前記物体の第１の部分とは異なる第２の部分を検出する第２の検出手段と、
前記第１の検出手段により前記第１の部分が検出された場合に、当該第１の部分に基づいて前記物体の第１、第２の部分とは異なる第３の部分を推定する第１の推定手段と、
前記第２の検出手段により前記第２の部分が検出された場合に、当該第２の部分に基づいて前記第３の部分を推定する第２の推定手段と、
前記第１及び第２の推定手段のそれぞれにより推定された前記第３の部分の重複率に基づいて、当該第３の部分が一致しているかを判断する判断手段と、
前記判断手段が一致していると判断した場合、前記第１または第２の検出手段の検出結果、前記第１または第２の推定手段の推定結果の少なくとも１つに基づいて、前記物体の検出結果を出力する出力手段と
を備え、
前記物体は人体であり、前記第１の検出手段は人体の全身を検出することを特徴とする物体検出装置。
【請求項２】
前記出力手段は前記第１および第２の検出手段の検出結果を統合して出力することを特徴とする請求項１に記載の物体検出装置。
【請求項３】
前記第１および第２の検出手段は、前記物体の位置と大きさとを検出することを特徴とする請求項１に記載の物体検出装置。
【請求項４】
前記第１および第２の検出手段は、それぞれの検出結果とともに、当該検出結果の尤度を表すスコアを算出して出力することを特徴とする請求項１に記載の物体検出装置。
【請求項５】
前記出力手段は、前記第１および第２の検出手段のそれぞれが算出したスコアの線形和を出力することを特徴とする請求項４に記載の物体検出装置。
【請求項６】
前記第１および第２の検出手段の出力するスコアの少なくとも一方を前記第１および第２の推定手段の信頼度に基づいて補正する補正手段を有することを特徴とする請求項４に記載の物体検出装置。
【請求項７】
前記第１および第２の検出手段は、補正された前記スコアが所定値以上の検出結果を出力することを特徴とする請求項６に記載の物体検出装置。
【請求項８】
前記出力手段は、前記補正手段による補正後のスコアの線形和を出力することを特徴とする請求項６に記載の物体検出装置。
【請求項９】
前記第３の部分は前記第１の部分に含まれ、前記第２の部分は前記第３の部分に含まれることを特徴とする請求項１から８のいずれか１項に記載の物体検出装置。
【請求項１０】
前記第２の検出手段は顔を検出することを特徴とする請求項９に記載の物体検出装置。
【請求項１１】
前記第１および第２の推定手段は、前記人体の頭部を推定することを特徴とする請求項１０に記載の物体検出装置。
【請求項１２】
前記判断手段は、前記第１および第２の推定手段により推定された前記第３の部分の重複率に基づいて、前記第１及び第２の推定手段のそれぞれにより推定された前記第３の部分が一致しているかを判断することを特徴とする請求項１から１１のいずれか１項に記載の物体検出装置。
【請求項１３】
前記第２の検出手段は複数の第２の部分を検出し、前記第２の推定手段は当該複数の第２の部分のそれぞれから第３の部分を推定し、前記判断手段は当該それぞれの第３の部分について前記第１の推定手段により推定した第３の部分との重複度を算出し、前記出力手段は、当該重複度が閾値以上で最も高い第３の部分を推定するために用いた第２の部分を出力することを特徴とする請求項１２に記載の物体検出装置。
【請求項１４】
入力画像から物体の第１の部分を検出する第１の検出工程と、
前記入力画像から前記物体の第１の部分とは異なる第２の部分を検出する第２の検出工程と、
前記第１の検出工程で前記第１の部分が検出された場合に、当該第１の部分に基づいて前記物体の第３の部分を推定する第１の推定工程と、
前記第２の検出工程で前記第２の部分が検出された場合に、当該第２の部分に基づいて前記第１、第２の部分とは異なる第３の部分を推定する第２の推定工程と、
前記第１及び第２の推定工程のそれぞれにより推定された前記第３の部分の重複率に基づいて、当該第３の部分が一致しているかを判断するかを判断する判断工程と、
前記判断工程で一致していると判断した場合、前記第１または第２の検出工程の検出結果、前記第１または第２の推定工程の推定結果の少なくとも１つに基づいて、前記物体の検出結果を出力する出力工程と
を備え、
前記物体は人体であり、前記第１の検出工程は人体の全身を検出することを特徴とする物体検出方法。
【請求項１５】
コンピュータに、請求項１４に記載の物体検出方法を実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出技術に関し、特に、入力情報の中の所定の対象物を検出する技術に関するものである。
【背景技術】
【０００２】
入力情報中の対象物を検出する物体検出装置では、対象物の姿勢が変化する場合や、対象物が部分的に遮蔽されている場合にでも、対象物を検出できることが望ましい。姿勢変化や遮蔽などの多様な対象物の状態に対応するためには、複数の異なる検出器を用いて対象物を検出することが有効である。
【０００３】
複数の異なる検出器を用いて対象物を検出する従来技術として非特許文献１がある。非特許文献１では、顔検出器と上半身検出器を組み合わせることで、人物の向きの変化や人物の部分的な遮蔽に対応した人物検出を行っている。顔検出器と上半身検出器を組み合わせる利点を具体的に説明すると以下のようになる。顔検出器は様々な手法が開発されており、高い性能で顔を検出することができる。従って、顔が見えている場合には、高い確率で人物を検出することができる。しかし、顔検出器を用いて人物検出を行うと、人物の向きによっては顔が見えなくなるため人物が検出しにくくなるという問題や、画像中の人物サイズが小さくなると顔テクスチャの情報も少なくなり、検出が困難になるという問題がある。一方、非特許文献１で利用されている上半身検出器は、人物の向きに関わらず直立姿勢の人物上半身を検出することができる。しかし、上半身の一部が遮蔽されているような場合には、上半身検出器の検出性能が劣化する。そこで、非特許文献１では、顔検出器と上半身検出器を組み合わせて、相互の欠点を補うことで人物を検出している。
【０００４】
異なる複数の検出器を用いて対象物を検出する場合には、異なる検出結果を統合して１人の人物に対して１つの検出結果を出力する必要がある。この時、異なる検出結果をどのように統合するかが課題となる。特に、人物が近傍に複数人存在し、重なり合うような場合の統合方法が課題となる。例えば、上半身検出器と顔検出器の結果を統合する場合に、単純に大きく重複した検出結果を統合し同一人物の結果として出力すると、複数人が重なり合った時に、図１のように背後の人物の顔検出結果が前面の人物の上半身検出結果に統合されてしまう場合がある。この結果、顔検出器で背後の人物が検出されていたにも関わらず、最終結果では、前面の人物のみが検出された結果が出力されてしまう。
【０００５】
非特許文献１では、この問題を解決するため、上半身検出器の結果から顔位置を推定し、顔検出器の結果位置と合わせてｍｅａｎ  ｓｈｉｆｔにより検出結果のクラスタ中心を求めている。この処理により、異なる部位を検出する複数の検出器の結果を統合している。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】山下隆義，  池村翔，  藤吉弘亘，  岩堀祐之  （２０１１）．“距離情報を考慮したパーツ統合による人物検出の高精度化”，電気学会論文誌  Ｄ，  Ｖｏｌ．１３１，  Ｎｏ．４．
【非特許文献２】Ｐ．  Ｖｉｏｌａ  ａｎｄ  Ｍ．  Ｊｏｎｅｓ  （２００１）．  “Ｒａｐｉｄ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  Ｂｏｏｓｔｅｄ  Ｃａｓｃａｄｅ  ｏｆ  Ｓｉｍｐｌｅ  Ｆｅａｔｕｒｅｓ”，  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ．
【非特許文献３】Ｄａｌａｌ，  Ｎ．，  ＆  Ｔｒｉｇｇｓ，  Ｂ．  （２００５）．  “Ｈｉｓｔｏｇｒａｍｓ  ｏｆ  ｏｒｉｅｎｔｅｄ  ｇｒａｄｉｅｎｔｓ  ｆｏｒ  ｈｕｍａｎ  ｄｅｔｅｃｔｉｏｎ．”，  ＩＥＥＥ  ＣＶＰＲ
【非特許文献４】Ｐｌａｔｔ，  Ｊ．  Ｃ．  （１９９９）．  Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｏｕｔｐｕｔｓ  ｆｏｒ  Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅｓ  ａｎｄ  Ｃｏｍｐａｒｉｓｏｎｓ  ｔｏ  Ｒｅｇｕｌａｒｉｚｅｄ  Ｌｉｋｅｌｉｈｏｏｄ  Ｍｅｔｈｏｄｓ．  Ａｄｖａｎｃｅｓ  ｉｎ  Ｌａｒｇｅ  Ｍａｒｇｉｎ  Ｃｌａｓｓｉｆｉｅｒｓ．
【非特許文献５】Ｚａｄｒｏｚｎｙ，  Ｂ．，  ＆  Ｅｌｋａｎ，  Ｃ．  （２００２）．  Ｔｒａｎｓｆｏｒｍｉｎｇ  ｃｌａｓｓｉｆｉｅｒ  ｓｃｏｒｅｓ  ｉｎｔｏ  ａｃｃｕｒａｔｅ  ｍｕｌｔｉｃｌａｓｓ  ｐｒｏｂａｂｉｌｉｔｙ  ｅｓｔｉｍａｔｅｓ．  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｅｉｇｈｔｈ  ＡＣＭ  ＳＩＧＫＤＤ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｋｎｏｗｌｅｄｇｅ  Ｄｉｓｃｏｖｅｒｙ  ａｎｄ  Ｄａｔａ  Ｍｉｎｉｎｇ．
【非特許文献６】Ｐ．  Ｆｅｌｚｅｎｓｚｗａｌｂ，  Ｄ．  ＭｃＡｌｌｅｓｔｅｒ，  Ｄ．  Ｒａｍａｎａｎ  （２００８）  “Ａ  Ｄｉｓｃｒｉｍｉｎａｔｉｖｅｌｙ  Ｔｒａｉｎｅｄ，  Ｍｕｌｔｉｓｃａｌｅ，  Ｄｅｆｏｒｍａｂｌｅ  Ｐａｒｔ  Ｍｏｄｅｌ”，  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ．
【非特許文献７】ＯｐｅｎＣＶ：  Ｏｐｅｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  Ｌｉｂｒａｒｙ．  ｈｔｔｐ：／／ｏｐｅｎｃｖ．ｗｉｌｌｏｗｇａｒａｇｅ．ｃｏｍ／ｗｉｋｉ／
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１では、上半身検出器の検出結果から顔位置を推定している。しかし、この顔位置は顔の向きに寄らず上半身の検出結果からの推定であるため、顔検出結果が示す顔位置よりも、顔位置の信頼性が低くなる傾向にある。この信頼性が低い推定顔位置と、比較的信頼性の高い顔検出結果の顔位置を統合しているため、最終的に出力される顔位置が誤った位置に出力される可能性がある。また、上半身検出器を使用しているにも関わらず、上半身が全て見えている場合においても上半身の範囲を特定することができない。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明によれば、入力画像から物体の第１の部分を検出する第１の検出手段と、前記入力画像から前記物体の第１の部分とは異なる第２の部分を検出する第２の検出手段と、前記第１の検出手段により前記第１の部分が検出された場合に、当該第１の部分に基づいて前記物体の第１、第２の部分とは異なる第３の部分を推定する第１の推定手段と、前記第２の検出手段により前記第２の部分が検出された場合に、当該第２の部分に基づいて前記第３の部分を推定する第２の推定手段と、前記第１及び第２の推定手段のそれぞれにより推定された前記第３の部分の重複率に基づいて、当該第３の部分が一致しているかを判断する判断手段と、前記判断手段が一致していると判断した場合、前記第１または第２の検出手段の検出結果、前記第１または第２の推定手段の推定結果の少なくとも１つに基づいて、前記物体の検出結果を出力する出力手段とを備え、前記物体は人体であり、前記第１の検出手段は人体の全身を検出することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数の異なる検出器を用いて、対象物を検出する場合に、対象物の位置を精度よく求めることができる。
【図面の簡単な説明】
【００１０】
【図１】異種の検出器を統合するうえでの課題を表した図である。
【図２】物体検出装置の構成図である。
【図３】検出処理部の処理フローチャートである。
【図４】検出結果の位置から頭部位置を推定する処理を説明する図である。
【図５】全身検出器において、検出結果位置と頭部位置の関係の定義を説明する図である。
【図６】頭部正解基準を用いて頭部位置推定結果を評価する処理を説明する図である。
【図７】統合結果出力部の処理フローチャートである。
【図８】統合結果出力部処理の具体例を説明する図である。
【図９】全身検出器の検出対象の例を表した図である。
【図１０】頭部検出器の検出対象の例を表した図である。
【図１１】多姿勢対応統合結果出力部の処理フローチャートである。
【図１２】パーツベースの検出器について説明する図である。
【図１３】検出処理部の処理フローチャートである。
【図１４】検査装置を表す図である。
【図１５】ベルトコンベヤー上に写る木材の様子を表した図である。
【図１６】検査のための物体検出装置の処理フローチャートである。
【図１７】線分の投票を表した図である。
【図１８】総和画像を表した図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら本発明の実施形態を説明する。
【００１２】
＜実施形態１＞
本実施形態では、複数の異なる検出器を用いて、画像中の対象物を検出する。異なる検出器は、それぞれ対象物の異なる部位や状態を検出対象にした検出器である。本実施形態の検出対象物は、特に限定されるものではないが、以下の実施形態では検出対象物を人物とした場合について説明を行う。
【００１３】
図２は本実施形態の物体検出装置の構成を説明する図である。本実施形態の物体検出装置は、ネットワークまたは各種記録媒体を介して取得したソフトウェア（プログラム）を、ＣＰＵ、メモリ、ストレージデバイス、入出力装置、バス、表示装置などにより構成される計算機にて実行することで実現できる。また、不図示の計算機については、汎用の計算機を用いても良いし、本実施形態のソフトウェアに最適に設計されたハードウェアを用いても良い。
【００１４】
本実施形態の物体検出装置は、図２のように、画像入力部１０１、複数の検出処理部１１１〜１１ｎ、各検出処理部に対応した共通部位推定部１２１〜１２ｎ、スコア補正辞書１３１〜１３ｎ、スコア補正部１４１〜１４ｎ、そして統合結果出力部１５１により構成される。以下、各構成要素についての説明を行う。
【００１５】
画像入力部１０１は、物体検出装置に処理対象となる画像を入力する部分である。画像入力部１０１に入力する画像は、カメラなどから取得した動画像の１フレームの画像でも良いし、ハードディスクなどのストレージデバイスに保存された画像でも良い。以下では、画像入力部１０１に入力された１枚の画像に対する処理について説明を行う。
【００１６】
複数の検出処理部１１１〜１１ｎには、対象物のそれぞれ異なる部位や状態を検出する検出器が、予め格納されている。検出対象物を人体とした場合、各検出処理部の異なる検出器には、顔検出器、頭部検出器、上半身検出器、全身検出器などの人物のそれぞれ異なる部位を対象とした検出器を用いることができる。人物の異なる部位を検出する検出器を用いることで、人物の一部が他の物体で遮蔽されている場合や、画像中から人物の一部がはみ出している場合にも人物を検出できるようになる。
【００１７】
本実施形態の複数の検出器は、それぞれ相互に補間し合うような検出器を準備することが望ましい。検出器の相互補完の例として、例えば頭部検出器と全身検出器の組み合わせが考えられる。まず、頭部検出器は、胴体以下が他の物体により遮蔽されていても人物を検出可能であり、また、身体部分の姿勢変動に影響を受けずに人物を検出できるという利点がある。一方、全身検出器は、対象としている部位が大きいため、人物の特徴を捉えやすいという利点があるが、遮蔽や姿勢変動に弱いという欠点がある。そこで、頭部検出器と全身検出器を同時に利用することで、互いの欠点を補うことができるようになり、人物検出の精度向上が期待できる。
【００１８】
各検出器は以下のようにして準備できる。例えば、顔検出器では、非特許文献２のように、学習画像の顔範囲のＨａａｒ−Ｌｉｋｅ特徴量を収集し、ＡｄａＢｏｏｓｔにより統計的に顔らしい特徴を識別できるようにして顔検出器を学習する。また、頭部や上半身、全身などその他の人物部位を学習する場合、画像特徴としては非特許文献３に記載されているＨＯＧ特徴量が利用できる。頭部検出器や上半身検出器、全身検出器を準備する場合には、各部位の学習画像を準備し、それぞれのＨＯＧ特徴量を取得して、ＳＶＭやＡｄａＢｏｏｓｔ等の識別器により各部位の検出器を学習する。学習の結果（例えば、ＡｄａＢｏｏｓｔの弱識別器など）は、検出器辞書として保存し、検出時に利用する。
【００１９】
各検出器は人物検出結果の尤もらしさを検出器スコアとして算出する。例えばＡｄａＢｏｏｓｔでは、各弱識別器の出力の重み付き和を検出器スコアとして出力する。またＳＶＭでは、識別超平面との距離を検出器スコアとして算出する。上記以外の判別処理でも、対象物らしさを表すスコアを出力する方法であれば、どのような方法を用いても良い。なお、以下では、検出器スコアが高いほど、各検出器が対象としている人物部位、または人物状態らしさが高い出力が得られているものとする。
【００２０】
以下、実施形態１では、複数の検出器として、全身検出器、頭部検出器、顔検出器の３つを、第１の部分として全身を検出する第１の検出部、第２の部分として頭部を検出する第２の検出部、第３の部分として顔を検出する第３の検出部として用いる場合について説明する。しかしながら、本実施形態に用いる検出器の構成はこの限りではない。
【００２１】
次に、複数の検出処理部１１１〜１１ｎでの処理について説明する。図３に、一つの検出処理部（例えば、検出処理部１１１）での処理フローチャートを示す。ここで、説明のため、検出処理部１１１は全身検出器による検出処理を行うものとする。まず、ステップＳ３０１では、入力画像の画像特徴量を算出する。検出処理部１１１の検出器は全身検出器であるため、入力画像からＨＯＧ特徴量を算出する。次に、ステップＳ３０２では、検出処理を行う特定位置の画像特徴量を取得する。ステップＳ３０３では、検出器辞書を用いて、処理対象の画像特徴量の対象物らしさを表す尤度に相当する検出スコアを算出する。画像全体を探索するため、各画像中の位置で検出スコアを算出する処理Ｓ３０３を、判別位置を変えながら画像全体に対して行う（ステップＳ３０２〜Ｓ３０４）。なお、判別位置を変えるループで、画像サイズも変更することにより、画像中で異なるサイズで写っている人物も検出できるようになる。以上、ステップＳ３０４までの処理で、画像中の各位置での検出スコアが得られる。この結果の全てを次の共通部位推定部に送るようにしても良いが、明らかに人物ではないと判断できる低い検出スコアの検出結果については、これ以降の処理を省略することで全体の処理負荷を低減することができるようになる。従って、ステップＳ３０５では、スコアが所定値以上の検出結果だけを残す閾値処理を行い、無駄な検出結果を削除している。ステップＳ３０５の処理の結果、画像中で検出スコアが高い位置の位置情報とそのスコアが検出処理部１１１から出力される。
【００２２】
以上、１つの検出処理部の処理結果を説明したが、物体検出装置全体としては、この検出処理部の処理を検出処理部の数だけ繰り返す。
【００２３】
次に、共通部位推定部１２１〜１２ｎについての説明を行う。共通部位推定部１２１〜１２ｎでは、対象物の共通部位の位置を各検出器の結果から推定する。以下、実施形態１では、人物の頭部を共通部位として、第１の検出部、第２の検出部、第３の検出部の検出結果から、対応する第１の推定部、第２の推定部、第３の推定部が共通部分となる頭部位置を推定する手順について説明を行う。推定する共通部位は、各検出器で共通に推定可能な部位であれば、特に限定するものではないが、その対象物に特徴的な部位（検出が行いやすい部位）や、周囲物体からの遮蔽、対象物の姿勢変化の影響を受けにくい部位を選択することが望ましい。検出対象物が人物である場合、人物の頭部は比較的遮蔽されにくく位置が特定しやすい部位であるため共通部位として適している。
【００２４】
図４は、各検出器の結果からの頭部位置推定を説明するための図である。検出処理の結果、検出対象の位置・範囲の情報が得られる。本実施形態では、検出結果の位置・範囲は、検出対象を囲む矩形枠で得られるとする。図４では、検出結果を矩形枠で示しており、それぞれ顔検出結果枠４０１、頭部検出結果枠４０２、全身結果枠４０３である。矩形枠は画像座標の２点で、以下のように表される。
【００２５】
【数１】
0006032921.tif 000002
【００２６】
ここで、ｘ１、ｙ１は矩形の左上点の画像座標、ｘ２、ｙ２は矩形の右下点の画像座標である。共通部位推定部では、この矩形枠から頭部位置・範囲を推定する。例えば、図４には、顔検出結果４０１から推定した頭部位置・範囲を矩形枠４１１で、全身検出結果４０３から推定した頭部位置・範囲を矩形枠４１３で表している。検出結果枠からの頭部推定は、予め検出結果枠と頭部の位置関係を定義しておき、検出結果枠から頭部位置に変換することで推定を行う。例えば、図５には、全身検出器の結果と頭部位置の位置関係の定義例を示している。図５の全身検出器に対する頭部位置の定義は、全身検出器の高さｈＢの１５％を頭部高さｈＨとし、全身検出器の幅ｗＢの５０％を頭部幅ｗＨとしている。また、ｘ軸方向には０．２５ｗＢのオフセットが定義されている。オフセットとは、頭部範囲矩形枠４１３のｘ方向の全身結果枠４０３内位置を示す。（下の数２のＸｈを使用してＸｈ−Ｘ１）全身検出器からの頭部位置推定は、全身結果の座標Ｘから、図５の定義に従って頭部座標Ｘｈとして求める。頭部座標Ｘｈは以下のように表される。
【００２７】
【数２】
0006032921.tif 000003
【００２８】
ここで、ｘｈ１、ｙｈ１は推定した頭部範囲の左上点の座標で、ｘｈ２、ｙｈ２は推定した頭部範囲の右下点の座標である。共通部位推定部１２１では、検出処理部１１１の結果得られた各検出結果について、検出結果座標Ｘから頭部推定座標Ｘｈを算出する。
【００２９】
図５に示した頭部範囲の定義は、各数値を予め人が入力・設計しても良いし、実際の全身検出結果から得られる頭部位置の平均から設計するようにしても良い。あるいは別途求めた設定にしても良い。頭部位置の平均を取得する場合には、複数のサンプル画像に全身検出器による検出処理を行い、検出結果内の頭部位置の平均値を算出することで求めることができる。
【００３０】
以上では、全身検出器から頭部位置を推定する方法を例にして共通部位推定部の動作について説明した。他の検出器の検出結果からの頭部位置推定についても、全身検出器の場合と同様に、各検出結果と頭部位置との位置関係を定義しておき、検出結果から頭部位置を推定する。全身検出器では、検出結果の内部の頭部位置を推定したが、推定位置は検出結果の内部である必要はない。例えば、図４の顔検出結果４０１から推定した頭部位置４１１は、顔検出結果４０１の外側にある。また、頭部そのものを検出する頭部検出器の検出結果４０２について、共通部位推定部では処理を省略して、頭部検出結果そのものを共通部位推定の結果として出力するようにしても良い。
【００３１】
次に、スコア補正辞書１３１〜１３ｎとスコア補正部１４１〜１４ｎについての説明を行う。本実施形態では、各検出結果から推定した共通部位の位置と、各検出結果スコアを用いて複数の異なる検出結果を統合する。ここで、共通部位の位置は検出結果から推定した結果であり、その推定精度は検出器によって異なる。本実施形態では、頭部位置を共通部位として推定しているが、頭部位置の推定性能は、頭部位置に近い、あるいは頭部と関係が深い検出器の方が良くなると考えられる。スコア補正辞書１３１〜１３ｎとスコア補正部１４１〜１４ｎでは、共通部位の推定性能の差を考慮した統合を行うために、共通部位の推定性能差に基づいてスコア補正を行う。補正後のスコアを用いて、検出結果を統合することで、対象物の検出結果の精度が向上することが期待できる。
【００３２】
スコア補正部１４１〜１４ｎでは、それぞれの検出器の検出スコアをスコア補正辞書１３１〜１３ｎに記録された情報を用いて変換する。スコア補正辞書１３１〜１３ｎには、各検出器の共通部位推定の信頼度に基づいて検出スコアを補正するための情報を格納する。
【００３３】
スコア補正では、検出器ごとに補正係数をスコア補正辞書に保存し、スコア補正時には係数を検出器スコアに乗じて補正スコアを算出すればよい。補正係数の例としては、頭部検出器の補正係数を１とし、顔検出器の補正係数を０．８、全身検出器の補正係数を０．５などとする。頭部に近い検出器（あるいは頭部位置の推定性能が高い検出器）では、係数を大きくし、頭部から遠い検出器（あるいは頭部位置の推定性能が低い検出器）では、低い係数を設定する。この係数を検出スコアに乗じて補正スコアを得ることにより、検出器の検出結果と共通部位推定の性能を考慮した補正スコアを得ることができる。
【００３４】
以上では、補正係数を人が入力・設定したが、補正係数は各検出器で推定する頭部位置の正解確率によって設定することが好適である。各検出器の頭部位置推定の正解確率については事前に求めておく必要がある。以下では、図６を用いて頭部位置推定の正解確率の求め方とスコア補正辞書に保存する補正係数について説明する。
【００３５】
まず、頭部位置が既知な画像サンプル群を準備する。図６（Ａ）は、画像６００の人物の頭部位置６０１が既知である画像の例で、頭部範囲の座標が頭部正解６０１として記録されている。ここで画像６００は、人物が一人しか写っていない、または、一人の人物範囲に切り出された画像であることが望ましい。このように、頭部位置が既知である画像を大量に準備する。次に、図６（Ｂ）は、図６（Ａ）の画像に、顔検出を実施した結果である。顔検出の結果、図３で説明した検出処理と同様に、画像６００全体に顔検出器の検出処理が逐次行われる。ここでは、画像６００の中での顔検出の検出スコアが最も高い検出結果６１１に着目する。画像６００には人物が一人しか写っていないため、最も高いスコアを示す検出結果６１１が顔であると考えられる。次に、この顔検出結果から頭部位置を推定した結果６１２を算出する。この頭部位置推定結果６１２と頭部正解６０１とを比較して、頭部推定結果が正しく行われたかを一致度算出を行って評価する。頭部正解６０１と頭部推定結果６１２の評価では、例えば、各位置の中心間距離が所定範囲内であれば、推定結果が正解であるとする。また、他の基準としては、矩形形状の頭部正解６０１と頭部推定結果６１２の重複率を算出し、所定の重複率以上を示す結果を頭部推定の正解としても良い。ここで中心間距離や重複率は、頭部位置推定結果６１２と頭部正解６０１との一致度を表す指標の例である。矩形の重複率αの算出方法としては、例えば、以下の式によって算出できる。
【００３６】
【数３】
0006032921.tif 000004
【００３７】
ここで、Ｓｂは頭部正解の面積、Ｓｅは推定した頭部範囲の面積、Ｓｂｅは頭部正解と推定した頭部範囲の重複した領域の面積である。以上の正解判定を、準備した全ての画像サンプル群に対し実行し、頭部推定が正解となった確率を求めることができる。なお、画像サンプルに対して検出結果自体が得られない場合には、頭部推定は不正解として判定する。
【００３８】
他の検出器についても同様に、頭部推定の正解確率を各検出器について求め、それぞれの正解確率を各検出器の補正係数として利用すればよい。例えば、図６（Ｄ）では、全身検出器の検出結果６３１から推定した頭部位置６３２と頭部正解６０１の位置関係を評価する。図６（Ｄ）では、頭部正解６０１から推定頭部位置６３２が大きくずれているため、中心間距離が大きくなったり重複率が小さくなったりして、全身検出器の頭部推定は不正解となる。また、図６（Ｃ）には頭部検出器の検出結果の正解判定を図示している。頭部検出器の結果についても、他と同様に頭部正解との評価を行い、頭部位置を示す性能を評価して補正係数を算出しても良い。頭部検出器では、頭部位置推定を必ずしも行う必要がないので、その場合は検出結果そのものの位置と頭部正解の評価を行う。
【００３９】
上記の重複率αを用いた補正係数算出では、各画像サンプルで正解・不正解の２値判定により正解確率を算出した。この情報を利用してＰｌａｔｔ  ｓｃａｌｉｎｇ（非特許文献４参照）やＩｓｏｔｏｎｉｃ  Ｒｅｇｒｅｓｓｉｏｎ（非特許文献５参照）を行い、スコア補正をしても良い。
【００４０】
以上の処理で、各検出器の結果は、推定した頭部位置と補正スコアを持つ。統合結果出力部１５１では、これら検出器の結果を統合し、同じ人物に対して複数の検出器から出力される情報をひとまとめにする。本実施形態は、同じ人物周辺において同じ検出器から重複して出力された検出結果をまとめることを目的としておらず、この点において非特許文献１と異なる。同じ検出器から重複して出力された検出結果をまとめるためには、統合結果出力部１５１の後に非特許文献１のようにｍｅａｎ  ｓｈｉｆｔやＮＭＳ  （ｎｏｎ−ｍａｘｉｍｕｍ  ｓｕｐｐｒｅｓｓｉｏｎ）を行えば良い。
【００４１】
本実施形態では、結果的に頭部検出器と全身検出器の両方で検出できた人物を検出結果として出力することになる。これは一見未検出率を大幅に増やしてしまいそうであるが、実際には遮蔽があってもスコアが低いながら両方の検出結果出力がある場合が多いことを観察したことに基づいている。これはＮＭＳなどを各検出器出力に対して適用するしないにかかわらず有効である。
【００４２】
以下では、同じ人物に対して複数の検出器から出力される情報を統合する処理について説明する。図７に、統合結果出力部の処理フローチャートを示す。まず、ステップＳ８０１からステップＳ８０４の処理を全身検出器の個々の出力結果に対してループしながら行う。ここで注目している全身検出器の出力結果の番号をｉ  （ｉ＝１，…，Ｌ）とし、出力結果（検出位置と大きさ）をＸＢ，ｉとする。またその頭部推定座標をＸｈＢ，ｉとする。次にステップＳ８０２で、頭部検出推定結果の中でＸｈＢ，ｉとの重複率が最も高いものを選択する。その番号をｊ  （ｊ＝１，…，Ｍ）とし、その頭部推定座標をＸｈＨ，ｊとする。ここでＸｈＢ，ｉとＸｈＨ，ｊの重複率Ａ０（ＸｈＢ，ｉ，  ＸｈＨ，ｊ）は次式より求める。
【００４３】
【数４】
0006032921.tif 000005
【００４４】
ここで、Ｐ（Ｘ，Ｙ）は矩形Ｘと矩形Ｙの重複した領域の面積である。また、Ｓ（Ｘ）は矩形Ｘの面積である。次にステップＳ８０３で顔検出推定結果の中でＸｈＢ，ｉとの重複率が最も高いものを選択する。その番号をｋ  （ｋ＝１，…，Ｎ）とする。ループ最後のステップＳ８０４では各全身検出器の検出結果ｉについて次のベクトルを出力する。
【００４５】
【数５】
0006032921.tif 000006
【００４６】
ここで、ＳＢ，ｉ，  ＳＨ，ｊ，  ＳＦ，ｋはそれぞれ、ｉ番目の全身検出器出力の補正スコア、ｊ番目の頭部検出器出力の補正スコア、ｋ番目の顔検出器出力の補正スコアであり、それらの和が統合スコアとして統合結果出力部から出力される。本実施形態では、各検出器のスコアを補正して単純な和をとって統合スコアとした。各検出器の種類によっては補正が必要のない場合がある。また、スコアを補正する場合でもしない場合でも各検出器のスコアの線形和を取って統合スコアとすることもできる。この場合の線形係数は、各検出器のスコアを入力ベクトルとしたＳＶＭなどの学習によって得ることができる。
【００４７】
図８は、統合結果出力部処理の具体例を説明する図である。図８（Ａ）は統合結果出力部に入力された時点での検出結果で、複数の検出結果が得られている状態である。ここでは図示の都合上、顔検出器の結果については省略しており、頭部検出器の検出結果と全身検出器の検出結果のみを図示している。図８（Ａ）では、１つの全身検出器の検出結果と、その頭部推定結果が示されている。破線の矩形９０１は全身検出器の結果で、破線の矩形９０４は全身検出器から推定された頭部位置である。また、実線９０２と９０３として頭部検出器の２つの検出結果が示されている。これらは、頭部検出処理部で画像中の探索位置を変えながら検出処理を行った結果、人物頭部周辺に複数の検出結果が得られた結果である。統合結果出力部では、共通部位である頭部位置の推定情報を用いて、これらの検出結果から図７を用いて説明した方法で検出結果をまとめる。図８（Ｂ）は、図８（Ａ）の検出結果を統合結果出力部１５１で処理した結果で、全身検出器に基づいた頭部推定位置９０４と最も重複率の高い頭部検出結果９０２が選択され、統合結果として残されているのが分かる。逆に頭部検出器の誤検出と思われる９０３は対応する全身検出の結果がないため、削除されている。
【００４８】
以上のように、本実施形態では、従来の手法に比べ、検出対象物の存在を精度良く求めることができるようになる。複数の検出器に基づいて検証を繰り返しているので、最終出力の統合結果が示す共通部位推定位置は、従来よりも誤検出が少ない可能性が高い。また、位置精度が高い頭部検出器によって検出した頭部位置を最終的な出力に利用しているため、頭部位置精度の高い検出結果を得ることができる。また、全身検出器の結果をも出力しているため、全身が入力画像に写っていた場合のその位置と大きさを求めることができる。
【００４９】
なお、上記実施形態では、最終出力として頭部検出器の検出結果と全身検出器の検出結果とを出力するようにしたが、いずれか一方のみを最終出力としてもよい。また、検出器の検出結果に代えて共通部位推定部のいずれかにより推定した部位を最終出力として出力するようにしてもよい。
【００５０】
＜実施形態２＞
実施形態２では、同じ種類の検出器を複数組み合わせる場合について説明する。これにより大きな姿勢変動に対応することができるようになる。なお、本実施形態でも、検出対象物は人物とし、共通部位は人物の頭部とする。また、実施形態１で説明した内容と同じ処理については説明を省略する。
【００５１】
物体検出装置の全体構成は実施形態１の図２と同じであるが、検出処理部の検出対象が異なる。また、統合結果出力部１５１の処理内容も異なる。本実施形態で使用する検出器として頭部検出器と全身検出器を使用する。
【００５２】
全身検出器の具体的な検出対象としては、図９のような複数の姿勢がある。ここに５つの姿勢を並べたが、必要とする仕様に応じて増減させることが可能である。腕の位置は分かりやすさのために図示したが、特に問わないことにする。また、他の姿勢を検出する必要がある場合には、その姿勢の検出器を用意すればよい。これらの検出器を用意するためには、各姿勢に分類した画像を用意し、それぞれの画像群のために非特許文献３に記述されている検出器を学習すれば良い。ここで注意するべきなのは、それぞれの検出枠（実線の矩形）内での頭部の位置が異なる点である。そのため実施形態１のように全身検出を１つの検出器だけで実現した場合、頭部位置の推定精度が悪くなってしまう。
【００５３】
頭部検出器の具体的な検出対象を図１０に示す。ここに示したのは、複数の姿勢に応じた頭部部分である。検出枠を実線の矩形で示した。ここでは、全身検出器と同じ姿勢に対して頭部検出器を用意しているが、同じ姿勢でなくても同じ数の姿勢でなくても良い。全身検出器の場合と同じように頭部画像を姿勢によって分類し、それぞれの画像群のために非特許文献３に記述されている検出器を学習する。また、この例では検出枠は実際の頭部よりも広めに取っているので、実施形態１の全身検出器で行ったように、頭部検出器の出力から頭部位置を推定する必要がある。
【００５４】
最後に統合結果出力部１５１の処理内容を図１１に示す。このままであれば、図７とさほど変わらないが、ここでは複数の全身検出器の出力を全て連番とし、複数の頭部検出器の出力を連番としている。その後は、図７と同じように、まず、ステップＳ１１０１からステップＳ１１０４の処理を全身検出器の個々の出力結果に対してループしながら行う。ここで注目している全身検出器の出力結果の番号をｉ  （ｉ＝１，…，ΣｄＬｄ；  Ｌｄはｄ番目の全身検出器の出力数）とする。またその頭部推定座標をＸｈＢ，ｉとする。次にステップＳ８０２で、頭部検出推定結果の中でＸｈＢ，ｉとの一致度が所定の閾値以上でスコアが最も高いものを選択する。その番号をｊ  （ｊ＝１，…，ΣｄＭｄ；  Ｍｄはｄ番目の頭部検出器の出力数）とし、その頭部推定座標をＸｈＨ，ｊとする。ここでＸｈＢ，ｉとＸｈＨ，ｊの一致度Ａ１（ＸｈＢ，ｉ，  ＸｈＨ，ｊ）は次式より求める。
【００５５】
【数６】
0006032921.tif 000007
【００５６】
ここで、Ｄ（Ｘ，Ｙ）は矩形Ｘと矩形Ｙの中心間の距離である。そして、Ｓ（Ｘ）は矩形Ｘの面積である。ループ最後のステップＳ１１０４では各全身検出器の検出結果ｉについて次のベクトルを出力する。
【００５７】
【数７】
0006032921.tif 000008
【００５８】
ここで、ＳＢ，ｉ，  ＳＨ，ｊはそれぞれ、ｉ番目の全身検出器出力の補正スコア、ｊ番目の頭部検出器出力の補正スコアであり、それらの和が統合スコアとして統合結果出力部から出力される。検出器毎に補正スコアを算出することにより姿勢別にスコアを補正することが可能である。これにより、ｉ番目の全身検出器出力に対して、複数の頭部検出器の出力全ての中から最適のものが組み合わされ、出力される。実施形態１のように統合スコアは線形和で求めても良い。
【００５９】
以上の統合結果出力部の処理により、大きな姿勢変動に対応した物体検出装置を実現することができる。
【００６０】
＜実施形態３＞
実施形態３では、対象物を複数の移動可能なパーツに分割して検出する検出処理部を用いる実施形態について説明する。本実施形態でも、検出対象物は人物とし、共通部位は人物の頭部とする。また、実施形態１で説明した内容と同じ処理については説明を省略する。
【００６１】
対象物の小さな姿勢変化などに対応した検出を行うために、パーツベースの検出手法が知られている。パーツベースの検出手法の例として、非特許文献６のような手法がある。
【００６２】
図１２は、パーツベースの検出手法を用いた全身検出器を説明する図である。図１２の点線１１０２は、全身検出器の一つのパーツで、図１２の全身検出器は８個のパーツで構成されている。実線１１０１は、パーツベースの検出の結果得られる全身検出結果である。図１２の（Ａ）と（Ｂ）では、人物の姿勢が異なるため、検出の結果得られる各パーツ位置も図１２（Ａ）と（Ｂ）では異なる位置に配置されている。パーツベースの検出結果では、各パーツの検出スコアと位置関係に基づいて算出される全体としての検出スコアが得られるとともに、図１２の実線や破線で表される対象物や各パーツの位置・範囲の情報が得られる。
【００６３】
以下では、このようなパーツベースの検出器を検出処理部で用いた場合について、検出結果から頭部位置推定（共通部位推定）を行う実施形態について説明する。
【００６４】
まず、パーツベースの検出器の結果から共通部位推定部で頭部位置を推定する処理について説明する。簡単な場合として、頭部を検出対象とするパーツが含まれる場合には、その頭部パーツ位置を頭部位置推定結果とすればよい。頭部パーツが推定する頭部範囲と一致しない場合（例えば、頭部から肩までを検出対象としたパーツがある場合）、実施形態１で説明したように、検出結果の頭部パーツから頭部位置を推定すればよい。
【００６５】
一方、図１２のように、頭部を明確に示さないパーツ群で検出器が構成されている場合には、複数のパーツの位置情報を用いて頭部位置を推定することができる。複数のパーツの位置情報から頭部位置を推定する場合には、各パーツの座標情報を並べたベクトルから、推定する頭部位置を線形変換で求められる。８個のパーツから頭部位置の左上ｘ座標ｘｈ１を推定する線形変換式の例は以下の式のようになる。
【００６６】
【数８】
0006032921.tif 000009
【００６７】
ここで、Ｘｐはパーツ座標のベクトルに定数１を追加したもの、Ｂｈ１は変換係数ベクトル、ｘｐｎ、ｙｐｎはそれぞれｎ番目のパーツの中心座標で、ｂはｘｈ１座標を求めるためのそれぞれの項の変換係数である。これは定数項ｂ０を含む。また、ｗ，ｈはそれぞれ対象物領域（図１２実線１１０１）の幅と高さである。頭部推定位置Ｘｈを求めるためには、異なる変換係数を用いて同様にｙｈ１、ｘｈ２、ｙｈ２を求めればよい。上記では、各パーツの中心座標のみから頭部位置を推定しているが、検出の結果得られる対象物領域（図１２実線１１０１）の座標情報をパーツ座標ベクトルに加えても良い。係数ベクトルＢは、頭部の正解基準を与えた画像サンプル群と、その画像サンプル群へのパーツベース検出器の検出結果から最小二乗法により求めることができる。頭部位置を推定する方法は、最小二乗法に限定することなく、頭部位置を目的変数、複数のパーツ位置を説明変数として他の回帰分析で求めることもできる。
【００６８】
全身検出器から推定される頭部位置推定枠を統合する以後の統合処理は実施形態１や実施形態２の統合結果処理部１５１と同じとする。特に実施形態２の統合方法では姿勢別に頭部推定が行われるため、より精度が高くなる。
【００６９】
以上の共通部位推定部の処理により、パーツベース検出器の検出結果から頭部位置を推定することができる。これにより共通部位推定の精度を高めることができる。また、実施形態２で説明した多姿勢対応の方法と組み合わせることにより、より多くの姿勢に対応することができ、更に共通部位推定の精度を高めることができる。
【００７０】
また、全身検出器の結果を利用して、上体の姿勢を推定することもできる。上式の代わりに次式を利用して、上体姿勢を推定する。ここで上体姿勢とは例えば喉元と腰元の座標のことを指す。
【００７１】
【数９】
0006032921.tif 000010
【００７２】
上式において、ｘｐ１は喉元のｘ座標である。Ｂ’ｐ１は変換係数ベクトル、ｂ’はｘｐ１を求めるためのそれぞれの項の変換係数である。これは定数項ｂ’０を含む。上体推定位置Ｘｐを求めるためには、異なる変換係数を用いて同様にｙｈ１（喉元ｙ座標）、ｘｐ２（腰元ｘ座標）、ｙｐ２（腰元ｙ座標）を求めればよい。係数ベクトルＢ’は、上体姿勢の正解を与えた画像サンプル群と、その画像サンプル群へのパーツベース検出器の検出結果から最小二乗法により求めることができる。
【００７３】
＜実施形態４＞
本実施形態も特性の異なる複数の検出器を組み合わせる物体検出装置に関するものであるが、同じ検出対象であっても特性の異なる検出器を用意することができることを示す例である。本実施形態では最適な頭部サイズが異なる頭部検出器を組み合わせる方法を示す。
【００７４】
まずピラミッド画像による複数サイズの検出処理について説明する。全体構成は実施形態１の図２と同じであるが、検出処理部１１１〜１１ｎの内容を図１３に差し替える。まず、ステップＳ１４０７において変数Ｌを０に初期化する。この変数の名前を以後「階層番号」とする。次にステップＳ１４０８からステップＳ１４０６までのループを所定回数だけ繰り返す。ステップＳ１４０８はループを所定回数だけ繰り返したかどうかの判定処理である。次のステップＳ１４０９では入力画像をｒＬ倍（０＜ｒ＜１）に縮小する。ステップＳ１４０１ではその縮小画像につい画像特徴量を算出する。次に、ステップＳ１４０２では、検出処理を行う特定位置の画像特徴量を取得する。ステップＳ１４０３では、検出器辞書を用いて、処理対象の画像特徴量の対象物らしさを判別し、検出スコアを算出する。画像全体を探索するため、各画像中の位置で検出スコアを算出する処理Ｓ１４０３を、判別位置を変えながら画像全体に対して行う（ステップＳ１４０２〜Ｓ１４０４）。以上、ステップＳ１４０２からステップＳ１４０４までの処理で、画像中の各位置での検出スコアが得られる。ステップＳ１４０５で、所定のスコア以上の結果を残す閾値処理を行い、無駄な検出結果を削除している。ステップＳ１４０５の処理の結果、画像中で検出スコアが比較的高い位置の位置情報とそのスコアが検出処理部１１１〜１１ｎから出力される。ループ最後のステップＳ１４０６で階層番号Ｌを１つ増分させて、ループ先頭のステップＳ１４０８へと制御を移す。以上の処理により、１つのサイズしか検出できない検出器を使って複数サイズの対象物を検出することが可能となる。
【００７５】
次に２つの頭部検出器を用意する処理を説明する。まず頭部の画像をＨ枚用意し、２つの大きさにリサイズする。１つの画像群は頭部幅ｗ１ピクセルで統一し、もう片方は頭部幅ｗ２ピクセルで統一する。ここでｗ１とｗ２は予め決められた値であり、ｗ１≠ｗ２とする。幅ｗ１ピクセルの頭部画像を学習に使って１つの頭部検出器Ｈ１を作成する。また幅ｗ２ピクセルの頭部画像を学習に使い、もう１つの頭部検出器Ｈ２を作成する。このようにして、ある大きさの頭部画像があり、頭部検出器Ｈ１を使うと図１３の検出処理において階層番号Ｌ１にて最大スコアを出力したとする。その場合、頭部検出器Ｈ２を使うと階層番号Ｌ１−ｌｏｇｒ（ｗ２／ｗ１）にて最大スコアを出力する傾向が強くなる。
【００７６】
さて、これらの頭部検出器を使った頭部位置推定の方法を説明する。まず、図６（Ａ）のように頭部位置が既知な画像サンプルを大量に準備する。次に、図６（Ａ）の画像に、頭部検出器をかける。検出の結果、図１３の検出処理で説明した処理と同様に、画像全体に頭部検出器の検出処理が逐次行われる。仮にｇ番目（ｇ＝１，…，Ｇ）の画像の中での頭部検出の検出スコアが最も高い検出結果が画像上の位置（ｘｇ，  ｙｇ）、階層番号Ｌｇにあったとする。画像６００には人物が一人しか写っていないため、最も高いスコアを示す検出結果６１１が頭部であると考えられる。このときの頭部正解位置を矩形（ｘ０，ｇ，  ｙ０，ｇ，  ｘ１，ｇ，  ｙ１，ｇ）で表すことにする。全ての頭部画像に対して上記処理を施すと、以下の行列ＸＨとＸＤが得られる。ＸＨは頭部正解位置が並ぶ行列であり、ＸＤは頭部検出位置とサイズの対数が並び、最後の列に定数１を追加したものである。
【００７７】
【数１０】
0006032921.tif 000011
【００７８】
すると、次式によって線形係数Ｂが求まる。
【００７９】
【数１１】
0006032921.tif 000012
【００８０】
演算記号は左除算を表す。この推定パラメータＢは１つの頭部検出器につき１つ用意する。すると、頭部検出器によって画像上の（ｘ，  ｙ）、階層番号Ｌにおいて頭部が検出された場合、頭部位置（ｘｈ１、ｙｈ１、ｘｈ２、ｙｈ２）は次の式で推定される。
【００８１】
【数１２】
0006032921.tif 000013
【００８２】
以後、２つの頭部検出器を使用して、実施形態１の統合結果検出処理１５１を行うことで、特性の異なる２つの頭部検出器の検出結果をまとめる。
【００８３】
以上、同じ検出対象を持ちながら異なる特性を持つ検出器を統合する方法を示した。特に本実施形態では、ピラミッド画像を利用して異なる階層に検出される頭部検出器の出力をまとめて１つの検出結果を出力する例を示した。
【００８４】
＜実施形態５＞
実施形態５では、検査装置の一部として使用される物体検出装置について説明する。検査装置が導入される工場では、長方形の形をした木材の中央に人手によりドリルで穴を開ける作業をしているものとする。ただし、木材に人手で穴を開けている都合上、必ずしも穴を開ける位置が正確とは言えない。そのため、この検査装置を導入することにより、品質の評価を行う。品質の評価は、木材上の穴の位置が所定の範囲内にあるかどうかによって判断し、範囲内であれば出荷対象とし、範囲外であればリサイクル対象とする。ただし木材に開けられた穴である都合上、画像処理による穴の位置の特定も必ずしも正確とは言えない。特に木材の模様（髄や節など）のために単純な円形模様を探索する検出器を使用すると、誤って穴以外の部分を穴と判断してしまうことがある。そのため、期待される位置付近での円形検出のみを有効とする必要がある。
【００８５】
検査装置は図１４のようにベルトコンベヤー１５０１、カメラ１５０２、コンピュータ１５０３からなり、コンピュータ１５０３とカメラ１５０２は通信ケーブルで接続されている。必要に応じて被写体の撮影条件を良くするために別途照明機材も用意される。穴の開いた木材１５０４はベルトコンベヤー１５０１に載せられ、その姿がカメラ１５０２によって撮影される。カメラ１５０２によって撮影される画像は例えば図１５のようになる。木材１５０４は、様々な水平方向に配置される可能性があるが、穴の見える面がカメラに写り、一度に１枚しか写らないように間隔を置いてベルトコンベヤー上に置かれる。
【００８６】
このような画像を入力とした物体検出装置の処理フローを図１６（Ａ）に示す。まずステップＳ１６０１でカメラ１５０２から画像を取得する。そしてステップＳ１６０２でその画像に対してエッジ検出を行う。例えばＯｐｅｎＣＶ（非特許文献７）に用意されているＣａｎｎｙ  Ｅｄｇｅ  Ｄｅｔｅｃｔｏｒを使用することができる。得られた白黒画像を利用し、ステップＳ１６０３においてハフ変換により線分を検出する。これもＯｐｅｎＣＶの確率的ハフ変換を利用すると、得られた線分のリストが得られる。次にステップＳ１６０４で、得られた各線分に基づいて穴の位置を推定する。その詳細なフローチャートを図１６（Ｂ）に示す。ステップＳ１６０９からステップＳ１６１１までのループを各線分について繰り返す。まずステップＳ１６１０で、各線分について線分の位置をずらして描画した画像を生成する。図１７は図１５の入力画像から得られた線分の１つ１８０１からステップＳ１６１０で生成された画像である。破線１８０１は参考のために図示しているが、生成された画像には描画されない線分である。描画される線分は線分１８０１の両側にＷ／２，  Ｈ／２の距離に平行に配置される。ここでＷとＨは木材の幅と高さ（Ｗ≧Ｈ）である。次にステップＳ１６１１で得られた画像にぼかしをかける。以後このぼかした画像を投票画像と呼ぶことにする。ぼかしにはＯｐｅｎＣＶのＧａｕｓｓｉａｎ  Ｂｌｕｒを利用できる。全ての線分について投票画像を生成した後、ステップＳ１６１２でこれら投票画像の和を取った画像（総和画像）を生成する。次のステップＳ１６１３ではこの総和画像の中で値が最大となるピクセル（ｘｍａｘ，  ｙｍａｘ）を求める。この位置が穴の推定位置である。図１５を入力画像とした場合の総和画像のイメージを示したのが図１８である。グレースケールの画像になるのを避けるため、ぼかしの効果は図示していない。図１７と同じように破線は参考のために図示している線分である。総和画像では合計４本の線分からの投票が効き、点１９０１で最大値を取る。図１６（Ａ）に戻り、ステップＳ１６０５で入力画像にぼかしを入れる。次にステップＳ１６０６でハフ変換により円の検出を行う。円の検出には、ＯｐｅｎＣＶの円検出アルゴリズムを使用することができる。検出されたｃ番目の円毎にそれぞれ中心位置（ｘｃ，  ｙｃ）と半径ｒｃが得られる。次にステップＳ１６０７で各円について次式に基づいて一致度を求め、その中で一致度が最大の円が特定される。
【００８７】
【数１３】
0006032921.tif 000014
【００８８】
ここでｒｅｘｐは期待される半径であり、Ｋは調整用パラメータである。またＡ２（ｃ）を最大にするｃの値をｍと定義する。すると、円検出の結果は（ｘｍ，  ｙｍ）となる。最後のステップＳ１６０８で検出結果を出力するが、その詳細を図１６（Ｃ）に示す。位置（ｘｍａｘ，  ｙｍａｘ）での各投票画像でのピクセル値を見れば、どの線分が穴の位置推定に貢献したかを知ることができる。まずステップＳ１６１５では、その中で位置（ｘｍａｘ，  ｙｍａｘ）でのピクセル値が大きいものから順に４枚の投票画像を定め、それら投票画像に対応した線分を特定する。ステップＳ１６１６で（ｘｍ，  ｙｍ）から各線分への距離を４つ求めることができる。これを降順にソートしたベクトル（ｄ１，  ｄ２，  ｄ３，  ｄ４）をステップＳ１６１７において検出装置の出力とする。このベクトルは（Ｗ，  Ｗ，  Ｈ，  Ｈ）に近いことが望ましい。
【００８９】
最後に検出装置はこの距離ベクトルを用いて以下の２つの誤差値を求め、両方とも所定の閾値θより小さければ、その木材を出荷対象とすれば良い。
【００９０】
【数１４】
0006032921.tif 000015
【００９１】
以上により、ハフ変換により検出情報を推定し、穴の検出を行う実施形態を示した。特に本実施形態では、検出情報を穴の位置と大きさに定め、線分と円の２つの異なる検出器を利用して、木材の穴を検出する装置の例を示した。
【００９２】
上述した実施形態によれば、複数の異なる検出器の結果を統合する場合に、推定結果の精度が高い共通の情報を推定し、その推定結果を利用して最終的な検出結果を得る。これにより、検出対象の領域以外に現れる誤検出を削減でき、精度の高い検出結果を得ることができるようになる。
【００９３】
＜その他の実施形態＞
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００９４】
更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００９５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図１】
0006032921.tif 000016
【図２】
0006032921.tif 000017
【図３】
0006032921.tif 000018
【図４】
0006032921.tif 000019
【図５】
0006032921.tif 000020
【図６】
0006032921.tif 000021
【図７】
0006032921.tif 000022
【図８】
0006032921.tif 000023
【図９】
0006032921.tif 000024
【図１０】
0006032921.tif 000025
【図１１】
0006032921.tif 000026
【図１２】
0006032921.tif 000027
【図１３】
0006032921.tif 000028
【図１４】
0006032921.tif 000029
【図１５】
0006032921.tif 000030
【図１６】
0006032921.tif 000031
【図１７】
0006032921.tif 000032
【図１８】
0006032921.tif 000033