(57)【要約】【課題】画像に含まれる人物の範囲を特定することができる人物検出装置を提供することを課題とする。【解決手段】人物検出装置１において、エッジ抽出部１１は、入力画像２１に対してエッジ抽出処理を実行して、横エッジ画像２２を生成する。肩検出部１２は、横エッジ画像２２を用いて、入力画像２１に含まれる人物の肩の中心及び肩幅を検出する。足先検出部１３は、検出された肩の中心及び肩幅に基づいて、人物の足先の位置を検出する。頭頂検出部１４は、検出された肩の中心及び肩幅に基づいて、人物の登頂の位置を検出する。サイズ決定部１５は、検出された肩幅に基づいて、人物の横方向のサイズを決定し、検出された足先の位置及び頭頂の位置に基づいて、人物の縦方向のサイズを決定する。サイズ決定部１５は、決定したサイズ、肩の中心位置、足先の位置、頭頂の位置とを含む人物範囲データ２８を生成する。【選択図】図１
2014186525.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に含まれる人物の肩の位置及び肩幅を前記入力画像から検出する肩検出部と、
前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の縦方向のサイズを決定する縦サイズ決定部と、
を備える人物検出装置。
【請求項２】
請求項１に記載の人物検出装置であって、
前記縦サイズ決定部は、
前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の足先の位置を検出する足先検出部、
を含む人物検出装置。
【請求項３】
請求項２に記載の人物検出装置であって、
前記足先検出部は、
前記検出された肩の位置及び肩幅を基準として、前記人物の足先の探索範囲を設定する足先範囲設定部と、
前記足先の探索範囲に含まれる画素の画素値を水平方向に配列された画素ラインごとに積算する第１積算部と、
前記第１積算部により積算された第１ラインの積算値と前記第１ラインに隣接する画素ラインの積算値との関係が所定条件を満たす場合、前記第１ラインの位置を前記足先の位置として決定する足先位置決定部と、
を含む人物検出装置。
【請求項４】
請求項３に記載の人物検出装置であって、
前記足先位置決定部は、前記第１ラインの積算値が、前記第１積算部により積算された画素ラインの積算値の平均よりも大きい場合、前記第１ラインの位置を前記足先の位置として決定する人物検出装置。
【請求項５】
請求項３または請求項４に記載の人物検出装置であって、
前記足先位置決定部は、前記足先の探索範囲に含まれる複数の画素ラインが前記足先の位置として決定された場合、前記足先の探索範囲に含まれる複数の画素ラインのうち前記検出された肩の位置に最も近い画素ラインの位置を足先の位置として決定する人物検出装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の人物検出装置であって、
前記縦サイズ決定部は、
前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の頭頂の位置を検出する頭頂検出部、
を含む人物検出装置。
【請求項７】
請求項６に記載の人物検出装置であって、
前記頭頂検出部は、
前記検出された肩の位置及び肩幅を基準として、前記人物の頭頂の探索範囲を設定する頭頂範囲設定部と、
前記頭頂の探索範囲に含まれる画素の画素値を水平方向に配列された画素ラインごとに積算する第２積算部と、
前記第２積算部により積算された第２ラインの積算値と前記第２ラインに隣接する画素ラインの積算値との関係が所定条件を満たす場合、前記第２ラインの位置を前記頭頂の位置として決定する頭頂位置決定部と、
を含む人物検出装置。
【請求項８】
請求項７に記載の人物検出装置であって、
前記頭頂位置決定部は、前記第２ラインの積算値が、前記第２積算部により積算された画素ラインの積算値の平均よりも大きい場合、前記第２ラインの位置を前記頭頂の位置として決定する人物検出装置。
【請求項９】
請求項７または請求項８に記載の人物検出装置であって、
前記頭頂位置決定部は、前記頭頂の探索範囲に含まれる複数の画素ラインが前記頭頂の位置として決定された場合、前記頭頂の探索範囲に含まれる複数の画素ラインのうち前記検出された肩の位置に最も近い画素ラインの位置を頭頂の位置として決定する人物検出装置。
【請求項１０】
請求項１ないし請求項９のいずれかに記載の人物検出装置であって、
前記縦サイズ決定部は、
前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の足先の位置を検出する足先検出部と、
前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の頭頂の位置を検出する頭頂検出部と、
前記足先検出部により検出された足先の位置と、前記頭頂検出部により検出された頭頂の位置とに基づいて、前記人物の縦方向のサイズを算出する算出部と、
を含む人物検出装置。
【請求項１１】
請求項１０に記載の人物検出装置であって、さらに、
前記検出された肩の位置及び肩幅と、前記検出された足先の位置と、前記検出された頭頂の位置とに基づいて、前記人物の範囲を決定する範囲決定部と、
前記範囲決定部により第１人物の範囲と第２人物の範囲とが決定された場合、前記第１人物の範囲が前記第２人物の範囲と重複するか否かを判断する重複判断部と、
前記重複判断部が重複すると判断した場合、前記第１人物の範囲及び前記第２人物の範囲のうち面積の大きい人物の範囲を保持する範囲保持部と、
を備える人物検出装置。
【請求項１２】
請求項１ないし請求項１１のいずれかに記載の人物検出装置であって、さらに、
前記肩検出部により検出された肩幅を用いて、前記人物の横方向のサイズを決定する横サイズ決定部と、
前記横サイズ決定部により決定された前記人物の横方向のサイズと、前記縦サイズ決定部により決定された前記人物の縦方向のサイズとの比率が所定の範囲にあるか否かを判断する比率判断部と、
前記比率が前記所定の範囲内にあると前記比率判断部により判断された場合、前記人物が検出されたと判断する人物判断部と、
を備える人物検出装置。
【請求項１３】
入力画像に含まれる人物を検出する人物検出装置に搭載されるコンピュータに、
入力画像に含まれる人物の肩の位置及び肩幅を前記入力画像から検出するステップと、
検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の縦方向のサイズを決定するステップと、
を実行させるための人物検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に含まれる人物の範囲を特定する人物検出装置に関する。
【背景技術】
【０００２】
カメラにより撮影された画像から人物を検出するための技術として、ニューラルネットワークや、パターンマッチングなどが挙げられる。これらの技術を用いることにより、人物を検出する対象となる領域を設定した場合、人物が設定された領域に存在するか否かを判断することができる。
【０００３】
特許文献１には、人物の対称性に基づいて、画像中から人物を検出する物体検出システムが開示されている。
【０００４】
特許文献１に係る物体検出システムにおいて、画像中の人物の幅が、画像内の縦方向の位置に応じて設定されている。物体検出システムは、設定された幅に対応する対称性フィルタを用いて各画素における水平方向の対称性を評価して、フィルタ反応画像を生成する。物体検出システムは、フィルタ反応画像に対して平滑化処理及び細線化処理を行うことにより、フィルタ反応画像から線分を得る。物体検出システムは、線分の下端を基準とした矩形領域を設定し、矩形領域における線分の縦方向の連続性及び密度に基づいて、矩形領域が歩行者の存在する候補領域であるか否かを特定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／０６５７２９号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、ニューラルネットワークや、パターンマッチングは、画像中の設定された領域に人物が存在するか否かを判断することができる。しかし、上記の技術では、人物が候補領域に存在すると判断されたとしても、候補領域内における人物の範囲を特定することができない。
【０００７】
本発明の目的は、画像に含まれる人物の範囲を特定することができる人物検出装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、請求項１記載の発明は、人物検出装置であって、入力画像に含まれる人物の肩の位置及び肩幅を前記入力画像から検出する肩検出部と、前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の縦方向のサイズを決定する縦サイズ決定部と、を備える。
【０００９】
請求項２記載の発明は、請求項１に記載の人物検出装置であって、前記縦サイズ決定部は、前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の足先の位置を検出する足先検出部、を含む。
【００１０】
請求項３記載の発明は、請求項２に記載の人物検出装置であって、前記足先検出部は、前記検出された肩の位置及び肩幅を基準として、前記人物の足先の探索範囲を設定する足先範囲設定部と、前記足先の探索範囲に含まれる画素の画素値を水平方向に配列された画素ラインごとに積算する第１積算部と、前記第１積算部により積算された第１ラインの積算値と前記第１ラインに隣接する画素ラインの積算値との関係が所定条件を満たす場合、前記第１ラインの位置を前記足先の位置として決定する足先位置決定部と、を含む。
【００１１】
請求項４記載の発明は、請求項３に記載の人物検出装置であって、前記足先位置決定部は、前記第１ラインの積算値が、前記第１積算部により積算された画素ラインの積算値の平均よりも大きい場合、前記第１ラインの位置を前記足先の位置として決定する。
【００１２】
請求項５記載の発明は、請求項３または請求項４に記載の人物検出装置であって、前記足先位置決定部は、前記足先の探索範囲に含まれる複数の画素ラインが前記足先の位置として決定された場合、前記足先の探索範囲に含まれる複数の画素ラインのうち前記検出された肩の位置に最も近い画素ラインの位置を足先の位置として決定する。
【００１３】
請求項６記載の発明は、請求項１ないし請求項５のいずれかに記載の人物検出装置であって、前記縦サイズ決定部は、前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の頭頂の位置を検出する頭頂検出部、を含む。
【００１４】
請求項７記載の発明は、請求項６に記載の人物検出装置であって、前記頭頂検出部は、前記検出された肩の位置及び肩幅を基準として、前記人物の頭頂の探索範囲を設定する頭頂範囲設定部と、前記頭頂の探索範囲に含まれる画素の画素値を水平方向に配列された画素ラインごとに積算する第２積算部と、前記第２積算部により積算された第２ラインの積算値と前記第２ラインに隣接する画素ラインの積算値との関係が所定条件を満たす場合、前記第２ラインの位置を前記頭頂の位置として決定する頭頂位置決定部と、を含む。
【００１５】
請求項８記載の発明は、請求項７に記載の人物検出装置であって、前記頭頂位置決定部は、前記第２ラインの積算値が、前記第２積算部により積算された画素ラインの積算値の平均よりも大きい場合、前記第２ラインの位置を前記頭頂の位置として決定する。
【００１６】
請求項９記載の発明は、請求項７または請求項８に記載の人物検出装置であって、前記頭頂位置決定部は、前記頭頂の探索範囲に含まれる複数の画素ラインが前記頭頂の位置として決定された場合、前記頭頂の探索範囲に含まれる複数の画素ラインのうち前記検出された肩の位置に最も近い画素ラインの位置を頭頂の位置として決定する。
【００１７】
請求項１０記載の発明は、請求項１ないし請求項９のいずれかに記載の人物検出装置であって、前記縦サイズ決定部は、前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の足先の位置を検出する足先検出部と、前記肩検出部により検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の頭頂の位置を検出する頭頂検出部と、前記足先検出部により検出された足先の位置と、前記頭頂検出部により検出された頭頂の位置とに基づいて、前記人物の縦方向のサイズを算出する算出部と、を含む。
【００１８】
請求項１１記載の発明は、請求項１０に記載の人物検出装置であって、さらに、前記検出された肩の位置及び肩幅と、前記検出された足先の位置と、前記検出された頭頂の位置とに基づいて、前記人物の範囲を決定する範囲決定部と、前記範囲決定部により第１人物の範囲と第２人物の範囲とが決定された場合、前記第１人物の範囲が前記第２人物の範囲と重複するか否かを判断する重複判断部と、前記重複判断部が重複すると判断した場合、前記第１人物の範囲及び前記第２人物の範囲のうち面積の大きい人物の範囲を保持する範囲保持部と、を備える。
【００１９】
請求項１２記載の発明は、請求項１ないし請求項１１のいずれかに記載の人物検出装置であって、さらに、前記肩検出部により検出された肩幅を用いて、前記人物の横方向のサイズを決定する横サイズ決定部と、前記横サイズ決定部により決定された前記人物の横方向のサイズと、前記縦サイズ決定部により決定された前記人物の縦方向のサイズとの比率が所定の範囲にあるか否かを判断する比率判断部と、前記比率が前記所定の範囲内にあると前記比率判断部により判断された場合、前記人物が検出されたと判断する人物判断部と、を備える。
【００２０】
請求項１３記載の発明は、入力画像に含まれる人物を検出する人物検出装置に搭載されるコンピュータに、入力画像に含まれる人物の肩の位置及び肩幅を前記入力画像から検出するステップと、検出された肩の位置及び肩幅を基準として、前記入力画像における前記人物の縦方向のサイズを決定するステップと、を実行させるための人物検出プログラムである。
【発明の効果】
【００２１】
本発明の人物検出装置は、入力画像に含まれる人物の肩の位置及び肩幅を入力画像から検出し、検出された肩の位置及び肩幅を基準として、入力画像における人物の縦方向のサイズを決定する。これにより、入力画像に含まれる人物の範囲を特定することができる。
【００２２】
また、本発明の人物検出装置は、検出された肩の位置及び肩幅を基準として、検出された人物の足先の位置を検出する。検出された足先の位置に基づいて、人物の縦方向のサイズを精度良く決定することができる。
【００２３】
また、本発明の人物検出装置は、検出された肩の位置及び肩幅を基準として、検出された人物の頭頂の位置を検出する。検出された頭頂の位置に基づいて、人物の縦方向のサイズを精度良く決定することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態による人物検出装置の構成を示す機能ブロック図である。
【図２】図１に示す人物検出装置により検出される人物の肩と頭頂と足先の位置関係を示す図である。
【図３】図１に示す人物検出装置の動作を示すフローチャートである。
【図４】図１に示す人物検出装置に入力される入力画像の一例を示す図である。
【図５】図４に示す画像から生成された横エッジ画像を示す図である。
【図６】図４に示す画像から生成された縦エッジ画像を示す図である。
【図７】図３に示す肩検出処理のフローチャートである。
【図８】図４に示す枠内の各画素が人物の肩の中心であろう度合い（肩尤度）の計算方法の概略を説明する図である。
【図９】図７に示す肩尤度計算処理のフローチャートである。
【図１０】図１に示す肩検出部により計算される肩尤度の計算方法を説明する図である。
【図１１】図９に示す肩尤度及び肩幅の計算処理のフローチャートである。
【図１２】図７に示す肩尤度画像生成処理により生成された肩尤度画像を示す図である。
【図１３】図３に示す足先検出処理のフローチャートである。
【図１４】図１３に示す足先探索領域決定処理の概略を説明する図である。
【図１５】図１３に示す足先値計算処理の概略を説明する図である。
【図１６】図１３に示す足先値計算処理のフローチャートである。
【図１７】図１３に示す足先位置特定処理のフローチャートである。
【図１８】図３に示す頭頂検出処理のフローチャートである。
【図１９】図１８に示す頭頂探索領域決定処理の概略を説明する図である。
【図２０】図１８に示す頭頂値計算処理のフローチャートである。
【図２１】図１８に示す頭頂位置特定処理のフローチャートである。
【図２２】図３に示すサイズ決定処理のフローチャートである。
【図２３】図２２に示す人物範囲決定処理のフローチャートである。
【図２４】図２２に示す重複判定処理のフローチャートである。
【発明を実施するための形態】
【００２５】
以下、図面を参照しつつ、本発明の実施の形態を詳しく説明する。
【００２６】
［１．人物検出装置１の構成］
図１は、本実施の形態による人物検出装置１の構成を示す機能ブロック図である。人物検出装置１は、入力画像２１に含まれる人物の範囲を特定する。
【００２７】
人物検出装置１は、画像認識部１７と、エッジ抽出部１１と、肩検出部１２と、足先検出部１３と、頭頂検出部１４と、サイズ決定部１５と、メモリ１６とを備える。
【００２８】
エッジ抽出部１１は、入力画像２１に対してエッジ抽出処理を実行して、横エッジ画像２２及び縦エッジ画像２３を生成する。
【００２９】
肩検出部１２は、横エッジ画像２２を用いて、入力画像２１に含まれる人物の肩の中心位置及び肩幅を検出する。肩検出部１２は、肩の中心位置及び肩幅の検出結果を含む肩候補データ２４を生成してメモリ１６に格納する。
【００３０】
足先検出部１３は、横エッジ画像２２と肩候補データ２４とを用いて、入力画像２１に含まれる人物の足先の位置を検出する。足先の位置は、肩検出部１２により検出された肩の中心及び肩幅に基づいて検出される。
【００３１】
頭頂検出部１４は、横エッジ画像２２と肩候補データ２４とを用いて、入力画像２１に含まれる人物の頭頂の位置を検出する。頭頂の位置は、肩検出部１２により検出された肩の中心及び肩幅に基づいて検出される。
【００３２】
サイズ決定部１５は、検出された人物の肩幅に基づいて、入力画像２１に含まれる人物の横方向のサイズを決定し、検出された足先の位置及び頭頂の位置に基づいて、入力画像２１に含まれる人物の縦方向のサイズを決定する。サイズ決定部１５は、決定したサイズ、肩の中心位置、足先の位置、頭頂の位置とを含む人物範囲データ２８を生成する。
【００３３】
画像認識部１７は、ニューラルネットワークや、サポートベクターマシンなどのアルゴリズムを用いて、入力画像２１における人物の有無を判断する。人物が入力画像２１に含まれる場合、画像認識部１７は、人物の存在する大まかな範囲を特定した対象領域データ２５を作成する。対象領域データ２５により特定される領域が、肩検出の対象となる。
【００３４】
メモリ１６は、ＲＡＭ（Random Access memory）などの記憶装置であり、肩候補データ２４、対象領域データ２５、及び探索範囲データ２６を格納する。探索範囲データ２６には、足先の位置及び頭頂の位置を探索する範囲を設定するための基準が記録されている。また、メモリ１６は、エッジ抽出部１１、肩検出部１２、足先検出部１３、頭頂検出部１４、サイズ決定部１５、及び画像認識部１７が各々の処理を実行する際の作業領域として使用される。
【００３５】
［２．人物検出装置１の全体的な動作］
人物検出装置１は、入力画像２１に含まれる人物の肩の中心、肩幅、足先の位置、頭頂の位置を検出することにより、人物の位置及びサイズを特定する。
【００３６】
図２は、人物検出装置１により検出される人物の肩と、足先と、頭頂との位置関係を示す図である。図２に示すように、人物３の肩３１とは、腕３２が胴体３３に接続される部分から、首３４の付け根までの部位をいう。人物３が正面を向いている場合、肩３１は、略三角形状である。頭頂３５は、直立している人物３の上端を指し、足先３６は、直立している人物３の下端を指す。
【００３７】
図３は、人物検出装置１の動作を示すフローチャートである。人物検出装置１は、入力画像２１に含まれる人物の大まかな領域を特定した対象領域データ２５を作成する（ステップＳ１）。入力画像２１は、カメラ（図示省略）により撮影された画像データ（フレーム）である。カメラは、例えば、自動車等の車両に搭載される。
【００３８】
対象領域データ２５は、ニューラルネットワークなどのアルゴリズムを用いる画像認識部１７により生成される。ニューラルネットワークを用いた人物検出では、検出された人物のサイズを特定することができないが、人物が検出された大まかな位置を特定することができる。画像認識部１７は、人物が存在する領域を示す対象領域データ２５を作成してメモリ１６に格納する。
【００３９】
図４は、入力画像２１の一例を示す図である。図４において、入力画像２１は、後ろ向きに立つ３人の人物を含む。３人の人物をそれぞれ囲む枠２１ａ〜２１ｃは、画像認識部１７により人物が存在すると判断された領域（対象領域）であり、対象領域データ２５は、枠２１ａ〜２１ｃを特定する情報を含む。
【００４０】
以下、特に説明のない限り、枠２１ａ内の人物の範囲を特定する場合における人物検出装置１の動作を説明する。
【００４１】
まず、人物検出装置１は、入力画像２１に対してエッジ抽出処理を実行し（ステップＳ２）、横エッジ画像２２及び縦エッジ画像２３を生成する。人物検出装置１は、入力画像の垂直方向（縦方向）の画素値の勾配に基づいてエッジを抽出して横エッジ画像２２を生成する。このため、横エッジ画像２２では、入力画像２１が有する横方向に延びるエッジが強調される。人物検出装置１は、入力画像の水平方向（横方向）の画素値の勾配に基づいてエッジを抽出して縦エッジ画像２３を生成する。このため、縦エッジ画像２３では、入力画像２１が有する縦方向に延びるエッジが強調される。
【００４２】
図５は、図４に示す入力画像２１から生成された横エッジ画像２２を示す図である。図６は、図４に示す入力画像２１から生成された縦エッジ画像２３を示す図である。図５に示す横エッジ画像２２では、３人の男性の肩付近のエッジや、３人の男性のシャツとパンツとの境界が強調されている。図６に示す縦エッジ画像２３では、３人の男性の腕や、脚が強調されている。
【００４３】
人物検出装置１は、横エッジ画像２２を用いて、対象領域データ２５で特定された枠２１ａ〜２１ｃにおける人物の肩の中心及び肩幅を検出する（ステップＳ３）。ステップＳ３で検出された肩の中心及び肩幅は、肩候補データ２４に記録される。ステップＳ３の詳細については、後述する。
【００４４】
人物検出装置１は、ステップＳ３で検出された肩の中心に対応する足先の位置を検出する（ステップＳ４）。足先の探索対象となる領域（足先探索領域）は、ステップＳ３で検出された肩の中心及び肩幅と、探索範囲データ２６とに基づいて特定される。ステップＳ４の詳細については、後述する。
【００４５】
人物検出装置１は、ステップＳ３で検出された肩の中心に対応する頭頂の位置を検出する（ステップＳ５）。頭頂の探索対象となる領域（頭頂探索領域）が、ステップＳ３で検出された肩の中心及び肩幅と、探索範囲データ２６とに基づいて特定される。ステップＳ５の詳細については、後述する。
【００４６】
人物検出装置１は、ステップＳ３〜Ｓ５の結果を用いて、枠２１ａ〜２１ｃ内の人物のサイズを決定する（ステップＳ６）。人物検出装置１は、ステップＳ３で検出された肩幅に基づいて、人物の横方向のサイズを決定し、ステップＳ３，４で検出された頭頂の位置及び足先の位置に基づいて、人物の縦方向のサイズを決定する。ステップＳ６の詳細は、後述する。
【００４７】
［３．エッジ抽出処理（ステップＳ２）］
エッジ抽出部１１は、入力画像２１に対してバンドパスフィルタをかけることにより、入力画像２１から横エッジ及び縦エッジを抽出する。エッジ抽出処理では、以下の式（１）が用いられる。
【００４８】
【数１】
2014186525.tif 000003
【００４９】
式（１）の上段において、ｘ（ｎ）は、入力画像２１の画素値である。ｙ（ｎ）は、横エッジ画像２２または縦エッジ画像２３の画素値である。ｈ（ｎ）は、バンドパスフィルタを示す。αについては、後述する。横エッジの抽出に用いられるバンドパスフィルタｈ（ｎ）と、縦エッジの抽出に用いられるバンドパスフィルタｈ（ｎ）とは、互いに異なる。
【００５０】
式（１）の下段において、ｍａｘは、入力画像２１の画素値の最大値である。αは、ｙ（ｎ）の最大値を２５５に設定するための正規化係数である。シグマ演算子による演算結果にαを乗じることにより、ｙ（ｎ）の最大値を２５５に設定することができる。
【００５１】
エッジ抽出部１１は、入力画像２１の垂直方向に並ぶ画素に対して上記式（１）を適用して、横エッジを抽出する。エッジ抽出部１１は、入力画像２１の水平方向に並ぶ画素に対して上記式（１）を適用して、縦エッジを抽出する。バンドパスフィルタｈ（ｎ）を用いることにより、画像の本質的な特徴を示す低周波成分と、画像の微小な変化を示す高周波成分とが、入力画像２１から取り除かれ、中間の周波数帯域の画像の変化がエッジとして抽出される。バンドパスフィルタｈ（ｎ）として、奇数タップのフィルタを用いることができる。例えば、タップ数は、３，５，７，９タップのいずれかである。
【００５２】
［４．肩検出処理（ステップＳ３）］
図７は、図３に示す肩検出処理（ステップＳ３）のフローチャートである。肩検出処理（ステップＳ３）は、肩検出部１２により実行される。
【００５３】
肩検出部１２は、対象領域データ２５に記録された枠２１ａ〜２１ｃの全てを、人物の肩を検出する範囲（肩検出範囲）として選択済みであるか否かを判断する（ステップＳ３１）。枠２１ａ〜２１ｃの全てが選択されていない場合（ステップＳ３１においてＮｏ）、肩検出部１２は、未選択の枠を1つ選択する（ステップＳ３２）。初回の選択時には、枠２１ａが選択される。
【００５４】
肩検出部１２は、肩尤度を枠２１ａ内の画素ごとに計算する（ステップＳ３３）。ステップＳ３３の詳細については、後述する。
【００５５】
肩検出部１２は、枠２１ａ〜２１ｃの全てを選択した場合（ステップＳ３１においてＹｅｓ）、後処理（ステップＳ３４）を実行する。後処理（ステップＳ３４）において、肩検出部１２は、入力画像２１の各画素の画素値を肩尤度に置換した肩尤度画像２７を生成する（ステップＳ３４１）。また、肩検出部１２は、生成した肩尤度画像２７に対して、２値化処理（ステップＳ３４２）、膨張・縮退処理（ステップＳ３４３）、ラベリング処理（ステップＳ３４４）、肩幅候補選択処理（ステップＳ３４５）を実行する。ステップＳ３４の詳細については、後述する。
【００５６】
［４．１．肩尤度計算処理（ステップＳ３３）］
肩検出部１２は、ステップＳ３３において、枠２１ａ内の各画素の肩尤度及び推定肩幅を計算する。肩尤度は、各画素が人物の肩の中心であろう度合いを示す数値であり、推定肩幅は、各画素が肩の中心である場合に推定される人物の肩幅である。画素が肩の中心となる可能性が高くなるにつれて、肩尤度は大きくなる。図８は、肩尤度の計算方法の概略を説明する図である。なお、図８に示す枠２１ａ及び人物２１ｍのサイズを、誇張して表示している。
【００５７】
図８において、入力画像２１の左上頂点を原点、横方向をＸ軸、縦方向をＹ軸と仮定する。Ｘ軸の正方向は、右方向であり、Ｙ軸の正方向は、下方向である。
【００５８】
ＳＴＸ、ＳＴＹは、枠２１ａにおいて、最初に肩尤度が計算される画素Ｐ１のＸ座標、Ｙ座標である。ＥＤＸ、ＥＤＹは、枠２１ａにおいて、最後に肩尤度が計算される画素Ｐ４のＸ座標、Ｙ座標である。ｗｉｎは、肩尤度を計算する際に暫定的に設定される肩幅（以下、「窓幅」と呼ぶ。）である。窓幅の最小値は、ｗｉｎｓであり、窓幅の最大値は、ｗｉｎｅである。窓幅の詳細については、後述する。
【００５９】
肩検出部１２は、画素Ｐ１から右方向に並ぶ各画素の肩尤度を、左から順に計算する。右端の画素Ｐ２の肩尤度が計算された場合、肩検出部１２は、画素Ｐ１の下に隣接する画素の肩尤度を計算する。このようにして、枠２１ａをスキャンすることにより、枠２１ａ内の各画素の肩尤度が計算される。
【００６０】
図９は、肩尤度計算処理（ステップＳ３３）のフローチャートである。肩検出部１２は、肩尤度の計算対象となる画素（基準画素）のＹ座標ｊをＳＴＹに設定する（ステップＳ３３１）。
【００６１】
肩検出部１２は、Ｙ座標ｊがＥＤＹ以下であるか否かを判断する（ステップＳ３３２）。Ｙ座標ｊがＥＤＹ以下である場合（ステップＳ３３２にいてＹｅｓ）、基準画素のＸ座標ｉが、ＳＴＸに設定される(ステップＳ３３３)。初回の基準画素の設定時には、画素Ｐ１が、基準画素に設定される。
【００６２】
肩検出部１２は、Ｘ座標ｉがＥＤＸ以下であるか否かを判断する（ステップＳ３３４）。Ｘ座標ｉがＥＤＸ以下である場合（ステップＳ３３４にいてＹｅｓ）、肩検出部１２は、基準画素の肩尤度及び推定肩幅を計算する（ステップＳ３３５）。ステップＳ３３５の詳細については、後述する。
【００６３】
次に、現在の基準画素の右隣の画素を次の基準画素に設定するために、Ｘ座標ｉがインクリメントされる（ステップＳ３３６）。インクリメントされたＸ座標ｉがＥＤＸ以下である場合（ステップＳ３３４においてＹｅｓ）、肩検出部１２は、ステップＳ３３５，Ｓ３３６を繰り返す。これにより、枠２１ａ内の最上段の画素の肩尤度及び推定肩幅が順次計算される。以下、枠２１ａ内の横方向に並ぶ画素の列を、「画素ライン」と呼ぶ。
【００６４】
一方、インクリメントされたＸ座標ｉがＥＤＸよりも大きい場合（ステップＳ３３４においてＮｏ）、肩検出部１２は、次の画素ラインの各画素を基準画素に設定する。具体的には、肩検出部１２は、Ｙ座標ｊをインクリメントし（ステップＳ３３７）、ステップＳ３３２に戻る。Ｙ座標ｊがＥＤＹ以下である場合（ステップＳ３３２においてＹｅｓ）、肩検出部１２は、Ｘ座標ｉをＳＴＸに設定する（ステップＳ３３３）。これにより、次の画素ラインの左端の画素が、基準画素に設定される。肩検出部１２は、Ｙ座標ｊがＥＤＹより大きくなるまで（ステップＳ３３２においてＮｏ）、ステップＳ３３３〜Ｓ３３７を繰り返す。これにより、枠２１ａ内の各画素の肩尤度及び推定肩幅が計算される。
【００６５】
ステップＳ３３２において、Ｙ座標ｊがＥＤＹよりも大きい場合（ステップＳ３３２においてＮｏ）、肩検出部１２は、枠２１ａ内の全ての画素の肩尤度及び推定肩幅が計算されたと判断し、図９に示すフローチャートを終了する。
【００６６】
［４．２．肩尤度及び推定肩幅の計算処理（ステップＳ３３５）］
図１０は、肩尤度及び推定肩幅の計算手順を説明する図である。図１０を参照しながら、肩尤度及び推定肩幅の計算の概略を説明する。
【００６７】
図１０に示す各画素は、横エッジ画像２２の画素である。基準画素Ｐｃを通る縦軸を中心にして線対称の左画素群ＬＧ及び右画素群ＲＧを想定する。また、基準画素Ｐｃを含む中心画素群ＣＧを想定する。
【００６８】
左画素群ＬＧ及び右画素群ＲＧの形状は、人間の肩の形状に対応する鉤型である。左画素群ＬＧは、画素ＬＰ１〜ＬＰ５を有する。画素ＬＰ１〜ＬＰ４は、基準画素Ｐｃと同じＹ座標を有し、左から右へ横方向に連続して並んでいる。画素ＬＰ５は、左端の画素ＬＰ１の直下に位置する。右画素群ＲＧは、左画素群ＬＧの左右反対の形状であり、画素ＲＰ１〜ＲＰ５を有する。画素ＲＰ１〜ＲＰ５は、画素ＬＰ１〜ＬＰ５にそれぞれ対応する。
【００６９】
中心画素群ＣＧは、基準画素Ｐｃと、基準画素Ｐｃの左右に隣接する２つの画素とを底辺とした、長方形状の画素の集合である。中心画素群ＣＧの縦方向のサイズは、画素５つ分である。
【００７０】
基準画素Ｐｃから左画素群ＬＧの左端の画素ＬＰ１までの距離を、間隔ｋと定義する。間隔ｋは、基準画素Ｐｃから右画素群ＲＧの右端の画素ＲＰ１までの距離と同じである。ただし、基準画素Ｐｃから画素ＲＰ１までの距離が、基準画素Ｐｃから画素ＬＰ１までの距離と異なることを妨げるものではない。
【００７１】
肩検出部１２は、基準画素Ｐｃから間隔ｋの位置にある左画素群ＬＧの各画素を重み付け加算することにより、左演算値を生成する。肩検出部１２は、基準画素Ｐｃから間隔ｋの位置にある右画素群ＲＧの各画素を重み付け加算することにより、右演算値を生成する。左演算値及び右演算値を加算した数値が、間隔ｋにおける肩尤度として得られる。
【００７２】
肩検出部１２は、間隔ｋを、窓幅ｗｉｎｓ／２〜ｗｉｎｅ／２の範囲で変化させることにより、それぞれの間隔ｋにおける肩尤度（個別肩尤度）を計算する。各間隔ｋに対応する個別肩尤度のうち最大値が、基準画素ｐｃの肩尤度として選択され、最大の個別肩尤度に対応する間隔ｋに基づいて推定肩幅が算出される。
【００７３】
図１１は、基準画素Ｐｃの肩尤度及び推定肩幅の計算処理（ステップＳ３３５）のフローチャートである。以下、図１０及び図１１を参照しながら、ステップＳ３３５を実行する肩検出部１２の動作を説明する。
【００７４】
まず、肩検出部１２は、基準画素Ｐｃが肩の中心となり得るか否かを判断する。具体的には、肩検出部１２は、中心画素群ＣＧの全画素が予め設定されたしきい値よりも小さいか否かを判断する（ステップＳ３７１）。
【００７５】
中心画素群ＣＧの全画素の画素値が、予め設定されたしきい値よりも小さい場合（ステップＳ３７１においてＮｏ）、肩検出部１２は、基準画素Ｐｃが肩の中心とはならないと判断し、基準画素Ｐｃの肩尤度ｓｙｍ（ｉ，ｊ）及び推定肩幅ａｘｊ（ｉ，ｊ）を０に設定する（ステップＳ３８４）。
【００７６】
ここで、肩尤度ｓｙｍ（ｉ，ｊ）及び推定肩幅ａｘｊ（ｉ，ｊ）が０に設定される理由を説明する。一般的に、人物の首と上半身の衣服との間には、横エッジが形成される。図１０に示す各画素は、横エッジ画像２２の画素であるため、基準画素Ｐｃが肩の中心である場合、中心画素群ＣＧの少なくとも１つの画素は、横方向に延びるエッジを含み、一定値以上の画素値を有すると考えられる。この考えに基づいて、中心画素群ＣＧの少なくとも１つの画素が、しきい値以上の画素値を有する場合、基準画素Ｐｃが、肩の中心である可能性があると判断される。一方、中心画素群ＣＧの全画素が、しきい値よりも小さい画素値を有する場合、基準画素Ｐｃは、肩の中心でないと判定され、基準画素Ｐｃの肩尤度及び推定肩幅は、０に設定される。
【００７７】
中心画素群ＣＧの少なくとも１つの画素値が、予め設定されたしきい値よりも大きい場合（ステップＳ３７１においてＹｅｓ）、肩検出部１２は、基準画素Ｐｃが肩の中心となりうると判断する。そして、肩検出部１２は、ステップＳ３７２〜Ｓ３８３を実行して、基準画素Ｐｃの肩尤度及び推定肩幅を計算する。
【００７８】
肩検出部１２は、間隔ｋ、暫定肩尤度Ｄ、暫定肩幅Ｆを初期化する（ステップＳ３７２）。暫定肩尤度Ｄは、現時点までに計算された個別肩尤度の最大値である。間隔ｋの初期値は、最小窓幅（ｗｉｎｓ）の半分である。暫定肩幅Ｆは、暫定肩尤度Ｄに対応する間隔ｋを示す。ステップＳ３７２において、暫定肩尤度Ｄ及び暫定肩幅Ｆには、所定の初期値が設定される。
【００７９】
肩検出部１２は、間隔ｋが最大窓幅（ｗｉｎｅ）の半分よりも小さいか否かを判断する（ステップＳ３７３）。間隔ｋが最大窓幅（ｗｉｎｅ）の半分よりも小さい場合（ステップＳ３７３においてＹｅｓ）、肩検出部１２は、ステップＳ３７４，Ｓ３７５を実行して、現在の間隔ｋに対応する個別肩尤度を計算する。
【００８０】
ステップＳ３７４において、肩検出部１２は、左画素群ＬＧの各画素を重み付け加算した左演算値ＳＨ＿Ｌと、右画素群ＲＧの各画素値を重み付け加算した右演算値ＳＨ＿Ｒとを計算する。左演算値ＳＨ＿Ｌ、右演算値ＳＨ＿Ｒは、下記式（２）、（３）によりそれぞれ計算される。
【００８１】
【数２】
2014186525.tif 000004
【００８２】
【数３】
2014186525.tif 000005
【００８３】
式（２），（３）において、ａは、画素ＬＰ２，ＬＰ３，ＬＰ５，ＲＰ２，ＲＰ３，ＲＰ５の重み付け係数であり、ｂは、画素ＬＰ４，ＲＰ４の重み付け係数である。画素ＬＰ１，ＲＰ１の重み付け係数は、１である。
【００８４】
肩検出部１２は、右演算値ＳＨ＿Ｒを左演算値ＳＨ＿Ｌに加算して、現在の間隔ｋに対応する個別肩尤度ＳＨ＿Ｃを計算する（ステップＳ３７５）。
【００８５】
肩検出部１２は、個別肩尤度ＳＨ＿Ｃが暫定肩尤度Ｄよりも大きいか否かを判断する（ステップＳ３７６）。個別肩尤度ＳＨ＿Ｃが暫定肩尤度Ｄ以下である場合（ステップＳ３７６においてＮｏ）、肩検出部１２は、現在の左画素群ＬＧ及び右画素群ＲＧの位置が人物２１ｍの肩に一致していないと判断し、Ｓ３７９に進む。
【００８６】
一方、個別肩尤度ＳＨ＿Ｃが暫定肩尤度Ｄよりも大きい場合（ステップＳ３７６においてＹｅｓ）、肩検出部１２は、暫定肩尤度Ｄを更新する条件が満たされているか否かを判断する（ステップＳ３７７）。具体的には、肩検出部１２は、左演算値ＳＨ＿Ｌと右演算値ＳＨ＿Ｒとの間に極端な差が存在するか否か判断する。下記式（４）及び式（５）のいずれかが満たされている場合、肩検出部１２は、極端な差がないため、暫定肩尤度Ｄを更新できると判断する。
【００８７】
【数４】
2014186525.tif 000006
【００８８】
【数５】
2014186525.tif 000007
【００８９】
式（４），（５）において、ｔは、２以上の整数である。ｔ＝２の場合、式（４）は、左演算値ＳＨ＿Ｌが、右演算値ＳＨ＿Ｒの半分より大きく、かつ、右演算値ＳＨ＿Ｒよりも小さい場合、更新条件が満たされることを示している。式（５）は、右演算値ＳＨ＿Ｒが、左演算値ＳＨ＿Ｌの半分より大きく、かつ、左演算値ＳＨ＿Ｌよりも小さい場合、更新条件が満たされることを示している。
【００９０】
式（４），（５）のいずれかが満たされている場合、肩検出部１２は、左画素群ＬＧ及び右画素群ＲＧの両者が、人物の両肩の形状に対応するエッジを有しているため、暫定肩尤度Ｄ及び暫定肩幅Ｆの更新条件が満たされていると判断する（ステップＳ３７７においてＮｏ）。肩検出部１２は、ステップＳ３７８に進む。
【００９１】
一方、式（４），（５）の両者とも満たされていない場合、肩検出部１２は、左画素群ＬＧ及び右画素群ＲＧの少なくとも一方が、人物の肩に対応するエッジを有していないため、更新条件が満たされていないと判断する（ステップＳ３７７においてＹｅｓ）。この場合、肩検出部１２は、次の間隔ｋの個別肩尤度ＳＨ＿Ｃを計算するために、ステップＳ３７９に進む。
【００９２】
更新条件が満たされている場合(ステップＳ３７７においてＮｏ）、肩検出部１２は、暫定肩尤度ＤをステップＳ３７５で計算した個別肩尤度ＳＨ＿Ｃに更新し、暫定肩幅Ｆを現在の間隔ｋに更新する（ステップＳ３７８）。そして、肩検出部１２は、間隔ｋをインクリメントする（ステップＳ３７９）。
【００９３】
肩検出部１２は、間隔ｋが最大窓幅ｗｉｎｅの半分を超えるまで（ステップＳ３７３においてＮｏ）、ステップＳ３７４〜Ｓ３７９を繰り返す。これにより、ｗｉｎｓ／２〜ｗｉｎｅ／２の範囲において、最大の個別肩尤度ＳＨ＿Ｃと、最大の個別肩尤度ＳＨ＿Ｃに対応する間隔ｋとが特定される。
【００９４】
間隔ｋが最大窓幅ｗｉｎｅの半分よりも大きい場合（ステップＳ３７３においてＮｏ）、肩検出部１２は、個別肩尤度ＳＨ＿Ｃの算出が終了したと判断し、暫定肩幅Ｆに基づいて、基準画素Ｐｃの推定肩幅ａｘｊを算出する（ステップＳ３８０）。基準画素Ｐｃにおける推定肩幅ａｘｊ（ｉ，ｊ）は、下記式（６）により求められる。すなわち、推定肩幅ａｘｊ（ｉ，ｊ）は、暫定肩幅Ｆを２倍して１を加算した値である。
【００９５】
【数６】
2014186525.tif 000008
【００９６】
次に、肩検出部１２は、暫定肩幅Ｆが０であるか否かを判断する（ステップＳ３８１）。暫定肩幅Ｆが０よりも大きい場合（ステップＳ３８１においてＮｏ）、肩検出部１２は、暫定肩尤度Ｄを基準画素Ｐｃの肩尤度ｓｙｍ（ｉ，ｊ）として設定する（ステップＳ３８２）。暫定肩幅Ｆが０である場合（ステップＳ３８１においてＹｅｓ）、暫定肩尤度Ｄの初期値を超える個別肩尤度が算出されなかったため、有意な肩幅を得られなかったことを示す。この場合、肩検出部１２は、基準画素Ｐｃが肩の中心でないと判断し、基準画素Ｐｃの肩尤度ｓｙｍ（ｉ，ｊ）を０に設定する（ステップＳ３８３）。
【００９７】
以上、基準画素Ｐｃの肩尤度及び推定肩幅の計算処理を説明した。枠２１ａ内の各画素の肩尤度及び推定肩幅が、上述の処理に基づいて実行される。
【００９８】
［４．３．後処理（ステップＳ３４）］
図７に示すように、肩検出部１２は、図７に示すステップＳ３１〜Ｓ３３を繰り返し実行することにより、枠２１ａ〜２１ｃ内の横エッジ画像２２の各画素の肩尤度及び推定肩幅を計算する。全ての枠が選択された場合（ステップＳ３１においてＹｅｓ）、肩検出部１２は、枠２１ａ〜２１ｃの肩尤度を用いて、肩尤度画像２７を生成する（ステップＳ３４１）。
【００９９】
図１２は、図５に示す横エッジ画像２２に基づいて生成された肩尤度画像２７を示す図である。図１２に示す枠２７ａ〜２７ｃは、図４に示す枠２１ａ〜２１ｃにそれぞれ対応する。肩検出部１２は、枠２７ａ〜２７ｃ内の各画素の画素値をステップＳ３３５で得られた肩尤度に設定する。枠２７ａ〜２７ｃの外側に位置する画素の画素値は、０に設定される。これにより、肩尤度画像２７が生成される。
【０１００】
次に、肩検出部１２は、肩尤度画像２７を２値化し（ステップＳ３４２）、２値化された肩尤度画像２７に対して縮退・膨張処理を実行する（ステップＳ３４３）。これにより、２値化された肩尤度画像２７に含まれる細かいパターンが除去される。肩検出部１２は、細かいパターンが除去された肩尤度画像２７に対してラベリング処理を実行する（ステップＳ３４４）。これにより、０よりも大きい肩尤度が集まっている領域に対してユニークな番号が割り当てられる。
【０１０１】
肩検出部１２は、ラベリングされた領域のうち一定値以下の面積を有する領域を削除し、一定値よりも大きい面積の領域のみを残す選択処理を実行する（ステップＳ３４５）。肩検出部１２は、ステップＳ３４５により選択された領域Ｒ１〜Ｒ５（図１２参照）を、人物の肩として検出する。
【０１０２】
肩検出部１２は、各領域Ｒ１〜Ｒ５ごとに、肩幅と肩の中心を決定する。例えば、領域Ｒ１では、領域Ｒ１内の画素のうち最大の肩尤度を有する画素が、領域Ｒ１における肩の中心として特定される。中心として特定された画素の推定肩幅ａｘｊ（ｉ，ｊ）が、領域Ｒ１における肩幅として決定される。
【０１０３】
なお、左画素群ＬＧ及び右画素群ＲＧの形状が鉤型である場合を例に説明したが、左画素群ＬＧ及び右画素群ＲＧは、他の形状であってもよい。例えば、右上方向に延びる直線を形成する複数の画素を、左画素群ＬＧとし、左上方向に延びる直線を形成する複数の画素を、右画素群ＲＧとしてもよい。あるいは、左画素群ＬＧ及び右画素群ＲＧは、曲線を形成してもよい。つまり、左画素群ＬＧ及び右画素群ＲＧは、人物の肩の形状に合うように設定されればよい。
【０１０４】
［５．足先検出処理（ステップＳ４）］
図１３は、足先検出処理（ステップＳ４）を示すフローチャートである。足先検出部１３は、肩検出処理（ステップＳ３）により肩が存在すると判定された領域Ｒ１〜Ｒ５（図１２参照）の各々に対して足先検出処理（ステップＳ４）を実行する。これにより、領域Ｒ１〜Ｒ５の肩の中心に対応する足先の位置が特定される。足先検出処理では、横エッジ画像２２が用いられる。以下、領域Ｒ１に対応する足先の位置を特定する場合を例に説明する。
【０１０５】
図１３に示すように、足先検出部１３は、探索範囲データ２６と、肩候補データ２４に記録された領域Ｒ１の肩の中心座標及び肩幅に基づいて、領域Ｒ１に対応する足先探索領域を決定する（ステップＳ４１）。
【０１０６】
足先検出部１３は、足先探索領域内の横エッジ画像２２の画素値を、横方向に積算することにより、足先値を計算する（ステップＳ４２）。つまり、足先値は、横方向に配列された画素ラインごとに生成される。足先値は、足先探索領域における足先の位置を特定するために、ステップＳ４３で使用される。
【０１０７】
足先検出部１３は、ステップＳ４２で求められた足先値に基づいて、領域Ｒ１に対応する足先位置を特定する（ステップＳ４３）。具体的には、足先検出部１３は、ステップＳ４２により積算された足先値のうち、所定の条件を満たす足先値を特定する。所定の条件を満たす足先値のうち、領域Ｒ１の肩の中心に一番近い足先値を有する画素ラインのＹ座標が、領域Ｒ１に対応する足先の位置として特定される。
【０１０８】
以下、足先検出処理の各ステップについて詳しく説明する。
【０１０９】
［５．１．足先探索領域の決定（ステップＳ４１）］
図１４は、領域Ｒ１における肩の中心ＰＳＨと、足先探索領域ＴＥ１との位置関係を示す図である。図１４に示すように、足先探索領域ＴＥ１は、長方形の領域として定義される。肩の中心ＰＳＨの座標を、（ＸＳＨ，ＹＳＨ）と仮定した場合、足先探索領域ＴＥ１の左上頂点の画素ＰＴＥ１のＸ座標ＸＰＴＥ１と、Ｙ座標ＹＰＴＥ１とは、下記式（７）で表され、右下頂点の画素ＰＴＥ２のＸ座標ＸＰＴＥ２と、Ｙ座標ＹＰＴＥ２とは、下記式（８）で表される。
【０１１０】
【数７】
2014186525.tif 000009
【０１１１】
【数８】
2014186525.tif 000010
【０１１２】
上記式（７），（８）において、ＳＨ＿Ｗは、領域Ｒ１の肩幅であり、Ｐ，Ｑ，ｎは、任意の定数である。好ましくは、Ｐは、２であり、Ｑは、３である。ｎは、２以上５以下の整数である。
【０１１３】
上記式（７），（８）は、探索範囲データ２６に記録されている。足先検出部１３は、上記式（７），（８）を用いて足先探索領域ＴＥ１を決定し、後述する足先値計算処理（ステップＳ４２）を実行する。
【０１１４】
［５．２．足先値計算処理（ステップＳ４２）］
図１５は、足先探索領域ＴＥ１における足先値の計算方法を説明する図である。図１５において、足先探索領域ＴＥ１内の画素の表示を一部省略している。
【０１１５】
図１５に示すように、足先検出部１３は、足先探索領域ＴＥ１内の横エッジ画像２２の各画素の画素値を画素ラインごとに積算することにより、足先値を計算する。画素ラインとは、足先探索領域内の横方向に１列に並ぶ画素の配列である。例えば、足先検出部１３は、画素ライン７１に含まれる各画素の画素値を積算することにより、画素ライン７１の足先値を計算する。
【０１１６】
図１６は、足先値計算処理（ステップＳ４２）のフローチャートである。足先検出部１３は、足先探索領域ＴＥ１の上から順に、各画素ラインの足先値を計算する。以下、図１５及び図１６を参照しながら、足先値の計算手順について詳しく説明する。
【０１１７】
足先検出部１３は、画素ライン７１の足先値を計算するために、足先値の計算対象の画素ラインのＹ座標として、ＹＰＴＥ１を設定する（ステップＳ４２１）。足先検出部１３は、計算対象の画素ラインが足先探索領域ＴＥ１内であるか否かを判断するために、設定された画素ラインのＹ座標がＹＰＴＥ２以下であるか否かを判断する（ステップＳ４２２）。
【０１１８】
計算対象の画素ラインのＹ座標がＹＰＴＥ２以下である場合（ステップＳ４２２においてＹｅｓ）、足先検出部１３は、積算対象の画素を決定するために、積算対象の画素のＸ座標をＸＰＴＥ１に設定する（ステップＳ４２３）。ステップＳ４２３が最初に実行された場合、積算対象の画素は、画素ＰＴＥ１に設定される。
【０１１９】
足先検出部１３は、画素ライン７１の足先値を０に初期化し（ステップＳ４２４）、積算対象の画素のＸ座標が足先探索領域ＴＥ１内であるか否かを判断するために、設定されたＸ座標がＸＰＴＥ２以下であるか否かを判断する（ステップＳ４２５）。
【０１２０】
積算対象の画素のＸ座標がＸＰＴＥ２以下である場合（ステップＳ４２５においてＹｅｓ）、足先検出部１３は、積算対象の横エッジ画像２２の画素の画素値を足先値に加算する（ステップＳ４２６）。足先検出部１３は、積算対象の画素のＸ座標をインクリメントする（ステップＳ４２７）。これにより、現在の積算対象の画素の右に隣接する画素が、新たな積算対象に設定される。
【０１２１】
足先検出部１３は、積算対象の画素のＸ座標がＸＰＴＥ２よりも大きくなるまで（ステップＳ４２５においてＮｏ）、ステップＳ４２６，Ｓ４２７を繰り返す。これにより、画素ライン７１の足先値が計算される。
【０１２２】
積算対象の画素のＸ座標がＸＰＴＥ２よりも大きい場合（ステップＳ４２５においてＮｏ）、足先検出部１３は、計算対象の画素ラインを変更するために、計算対象の画素ラインのＹ座標をインクリメントする（ステップＳ４２８）。これにより、現在の計算対象の画素ラインの下に隣接する画素ラインが、新たな計算対象に設定される。インクリメントされたＹ座標がＹＰＴＥ２以下である場合（ステップＳ４２２においてＹｅｓ）、次の画素ラインの足先値の計算を開始するために、積算対象の画素のＸ座標がＸＰＴＥ１に設定される（ステップＳ４２３）。
【０１２３】
以下、計算対象の画素ラインのＹ座標がＹＰＴＥ２よりも大きくなるまで（ステップＳ４２２においてＮｏ）、ステップＳ４２２〜Ｓ４２８が繰り返される。この結果、足先探索領域ＴＥ１内の各画素ラインの足先値が計算される。
【０１２４】
［５．３．足先位置特定処理（ステップＳ４３）］
足先検出部１３は、ステップＳ４２で計算された各画素ラインの足先値を用いて、領域Ｒ１の肩の中心ＰＳＨに対応する足先の位置を特定する。まず、図１５を参照しながら、足先の位置の決定手順の概略を説明する。
【０１２５】
足先検出部１３が、判定対象として画素ライン７３を選択したと仮定する。足先検出部１３は、画素ライン７３の上下に隣接する画素ライン７２，７４のうち、足先値の低い画素ラインを決定する。ここでは、画素ライン７２が決定されたと仮定する。
【０１２６】
足先検出部１３は、判定対象の画素ライン７３の足先値が画素ライン７２の足先値のｓ倍よりも大きく、かつ、判定対象の画素ライン７３の足先値が画素ライン７１〜７５の平均値のｓ倍よりも大きい場合、画素ライン７３を、肩の中心ＰＳＨの足先の候補として決定する。
【０１２７】
足先検出部１３は、足先探索領域ＴＥ１内の各画素ラインが上記の条件を満たすか否かを判断することにより、足先の候補となる画素ラインを決定する。候補に決定された画素ラインのうち、肩の中心ＰＳＨに最も近い画素ラインのＹ座標が、肩の中心ＰＳＨに対応する足先の位置として特定される。
【０１２８】
図１７は、足先位置特定処理（ステップＳ４３）のフローチャートである。以下、図１５及び図１７を参照しながら、足先位置特定処理（ステップＳ４３）を実行する足先検出部１３の動作を説明する。
【０１２９】
足先検出部１３は、足先検出フラグＦｒｓを０に初期化する（ステップＳ４３１）。足先検出フラグＦｒｓは、足先位置が足先探索領域ＴＥ１から特定されたか否かを示し、後述するサイズ決定処理（ステップＳ６）で用いられる。足先検出フラグＦｒｓが０である場合、足先の位置が特定されなかったことを示し、足先検出フラグＦｒｓが１以上である場合、足先の位置が特定されたことを示す。
【０１３０】
足先検出部１３は、足先探索領域ＴＥ１内の各画素ラインの足先値の平均を算出する（ステップＳ４３２）。
【０１３１】
足先検出部１３は、足先探索領域ＴＥ１の下側から順に、画素ラインが足先の条件を満たすか否かを判定する。足先検出部１３は、足先探索領域ＴＥ１の画素ラインの中から、判定対象の画素ラインを選択する（ステップＳ４３３）。初回の選択時には、足先探索領域ＴＥ１において下から２番目に位置する画素ラインが選択される。一番下の画素ライン７５には、比較の対象となる下側の画素ラインが存在しないため、画素ライン７５は、判定対象として選択されない。同様の理由で、足先探索領域ＴＥ１の一番上に位置する画素ラインは、判定対象として選択されない。
【０１３２】
足先検出部１３は、選択された画素ラインが比較対象の画素ラインを有するか否かを判断するために、選択された画素ラインのＹ座標がＹＰＴＥ１より大きいか否かを判断する（ステップＳ４３４）。
【０１３３】
選択された画素ラインのＹ座標がＹＰＴＥ１より大きい場合（ステップＳ４３４においてＹｅｓ）、足先検出部１３は、判定対象の画素ラインの上下に隣接する画素ラインが有する足先値の内、小さい方の足先値を特定する（ステップＳ４３５）。判定対象の画素ラインの足先値が、特定された足先値のｓ倍より大きい場合（ステップＳ４３６においてＹｅｓ）、足先検出部１３は、ステップＳ４３７に進む。一方、判定対象の画素ラインの足先値が、特定された足先値のｓ倍以下である場合（ステップＳ４３６においてＮｏ）、足先検出部１３は、判定対象の画素ラインが足先の条件を満たさないと判断し、次の画素ラインを選択するためにステップＳ４４０に進む。
【０１３４】
足先検出部１３は、ステップＳ４３７において、判定対象の画素ラインの足先値が足先値の平均のｓ倍よりも大きいか否かを判断する。判定対象の画素ラインの足先値が足先値の平均のｓ倍以下である場合（ステップＳ４３７においてＮｏ）、足先検出部１３は、判定対象の画素ラインが足先の条件を満たさないと判断し、次の画素ラインを選択するためにステップＳ４４０に進む。
【０１３５】
一方、判定対象の画素ラインの足先値が足先値の平均のｓ倍よりも大きい場合（ステップＳ４３７においてＹｅｓ）、足先検出部１３は、判定対象の画素ラインが足先の条件を満たすと判断し、足先検出フラグＦｒｓをインクリメントする（ステップＳ４３８）。足先検出部１３は、判定対象の画素ラインのＹ座標を足先位置ＴＥｙとして登録する（ステップＳ４３９）。
【０１３６】
足先検出部１３は、次の画素ラインを判定対象に選択するために、判定対象の画素ラインのＹ座標をデクリメントする（ステップＳ４４０）。デクリメントされたＹ座標に基づいて、判定対象の画素ラインが新たに選択される（ステップＳ４３３）。Ｙ座標がデクリメントされる理由は、上述のように、画素ラインが足先の条件を満たすか否かを、足先探索領域ＴＥ１の下側から順に判断するためである。
【０１３７】
以下、足先検出部１３は、判定対象の画素ラインのＹ座標がＹＰＴＥ１以下となるまで（ステップＳ４３４においてＮｏ）、ステップＳ４３５〜Ｓ４４０を繰り返す。これにより、足先位置ＴＥｙは、足先の条件を満たす画素ラインが特定される度に更新される（ステップＳ４３９）。この結果、足先検出部１３は、足先の条件を満たす画素ラインのうち、肩の中心ＰＳＨに最も近い画素ラインを足先位置として特定することができる。
【０１３８】
［６．頭頂検出処理（ステップＳ５）］
［６．１．頭頂検出処理（ステップＳ５）の概略］
図１８は、頭頂検出処理（ステップＳ５）を示すフローチャートである。頭頂検出部１４は、肩検出処理（ステップＳ３）により肩が存在すると判定された領域Ｒ１〜Ｒ５（図１２参照）の各々に対して頭頂検出処理（ステップＳ５）を実行する。これにより、領域Ｒ１〜Ｒ５の肩の中心に対応する頭頂の位置が特定される。頭頂検出処理では、横エッジ画像２２が用いられる。以下、領域Ｒ１に対応する頭頂の位置を特定する場合を例に説明する。
【０１３９】
頭頂検出処理（ステップＳ５）は、頭頂の位置を探索する頭頂探索領域の決定方法などを除いて、上述の足先検出処理（ステップＳ４）と同様である。従って、頭頂検出処理（ステップＳ５）の説明において、足先検出処理（ステップＳ４）と共通する説明を一部省略する。
【０１４０】
図１８に示すように、足先検出部１３は、領域Ｒ１の肩の中心ＰＳＨに基づいて、領域Ｒ１に対応する頭頂探索領域を決定する（ステップＳ５１）。
【０１４１】
図１９は、肩の中心ＰＳＨと、頭頂探索領域ＨＴ１との位置関係を示す図である。図１９に示すように、頭頂探索領域ＨＴ１は、長方形の領域として定義される。頭頂探索領域ＨＴ１の左上頂点の画素ＰＨＴ１のＸ座標ＸＰＨＴ１と、Ｙ座標ＹＰＨＴ１とは、下記式（８）で表され、右下頂点の画素ＰＨＴ２のＸ座標ＸＰＨＴ２と、Ｙ座標ＹＰＨＴ２とは、下記式（９）で表される。
【０１４２】
【数９】
2014186525.tif 000011
【０１４３】
【数１０】
2014186525.tif 000012
【０１４４】
上記式（９），（１０）において、ｎ，ｍは、任意の定数である。定数ｎは、式（７），（８）で用いられる定数ｎと共通である。ｍは、３以上６以下の整数である。式（９），（１０）は、探索範囲データ２６に記録されている。頭頂検出部１４は、上記式（９），（１０）を用いて頭頂探索領域ＨＴ１を決定し、後述する頭頂値計算処理（ステップＳ５２）を実行する。
【０１４５】
頭頂検出部１４は、頭頂探索領域ＨＴ１内の横エッジ画像２２の画素値を、横方向に積算することにより、頭頂値を計算する（ステップＳ５２）。頭頂値は、頭頂探索領域ＨＴ１における頭頂の位置を特定するために、ステップＳ５３で使用される。
【０１４６】
頭頂検出部１４は、ステップＳ５２で求められた頭頂値に基づいて、領域Ｒ１に対応する頭頂位置を特定する（ステップＳ５３）。頭頂検出部１４は、ステップＳ５２により積算された各画素ラインの頭頂値のうち、足先検出処理（ステップＳ４）で用いた条件と同じ条件を有する画素ラインの頭頂値を特定する。特定された頭頂値を有する画素ラインのうち、領域Ｒ１の肩の中心ＰＳＨに一番近い画素ラインのＹ座標が、領域Ｒ１に対応する頭頂の位置として特定される。
【０１４７】
［６．２．頭頂値の計算（ステップＳ５２）］
図２０は、頭頂値計算処理（ステップＳ５２）のフローチャートである。頭頂検出部１４により検出される頭頂値の計算方法は、計算対象の領域が頭頂探索領域ＨＴ１となる点を除き、上述した足先値の計算方法と同様である。つまり、図２０のステップＳ５２１〜Ｓ５２８は、図１６のステップＳ４２１〜Ｓ４２８に対応する。
【０１４８】
頭頂検出部１４は、頭頂値の計算対象の画素ラインのＹ座標として、ＹＰＨＴ１を設定する（ステップＳ５２１）。頭頂検出部１４は、設定された画素ラインのＹ座標がＹＰＨＴ２以下であるか否かを判断する（ステップＳ５２２）。
【０１４９】
計算対象の画素ラインのＹ座標がＹＰＨＴ２以下である場合（ステップＳ５２２においてＹｅｓ）、頭頂検出部１４は、積算対象の画素のＸ座標をＸＰＨＴ１に決定する（ステップＳ５２３）。ステップＳ５２３が最初に実行された場合、積算対象の画素は、画素ＰＨＴ１に設定される。
【０１５０】
頭頂検出部１４は、計算対象の画素ラインの頭頂値を初期化する（ステップＳ５２４）。積算対象の画素のＸ座標がＸＰＨＴ２以下である場合（ステップＳ５２５においてＹｅｓ）、頭頂検出部１４は、積算対象の横エッジ画像２２の画素の画素値を頭頂値に加算する（ステップＳ５２６）。頭頂検出部１４は、は、積算対象の画素のＸ座標をインクリメントする（ステップＳ５２７）。これにより、現在の積算対象の画素の右に隣接する画素が、新たな積算対象に設定される。
【０１５１】
頭頂検出部１４は、積算対象の画素のＸ座標がＸＰＨＴ２よりも大きくなるまで（ステップＳ５２５においてＮｏ）、ステップＳ５２６，Ｓ５２７を繰り返す。積算対象の画素のＸ座標がＸＰＨＴ２よりも大きい場合（ステップＳ５２５においてＮｏ）、頭頂検出部１４は、計算対象の画素ラインのＹ座標をインクリメントする（ステップＳ５２８）。これにより、現在の計算対象の画素ラインの下に隣接する画素ラインが、新たな計算対象に設定される。次の画素ラインの頭頂値の計算を開始するために、積算対象の画素のＸ座標がＸＰＨＴ１に設定される（ステップＳ５２３）。
【０１５２】
以下、計算対象の画素ラインのＹ座標がＹＰＨＴ２よりも大きくなるまで（ステップＳ５２２においてＮｏ）、ステップＳ５２２〜Ｓ５２８が繰り返される。この結果、頭頂探索領域ＨＴ１内の各画素ラインの頭頂値が計算される。
【０１５３】
［６．３．頭頂位置検出処理（ステップＳ５３）］
頭頂検出部１４は、ステップＳ５２で計算された各画素ラインの頭頂値を用いて、領域Ｒ１の肩の中心ＰＳＨに対応する頭頂の位置を決定する。頭頂の位置の決定方法は、足先の位置の決定方法と同様である。
【０１５４】
図２１は、頭頂位置検出処理（ステップＳ５３）のフローチャートである。図２１に示すステップＳ５３１〜５４０は、図１７に示すステップＳ４３１〜Ｓ４４０に対応する。ただし、頭頂検出部１４は、頭頂探索領域ＨＴ１の上側の画素ラインから順に、画素ラインが頭頂の条件を満たすか否かを判定する。
【０１５５】
頭頂検出部１４は、頭頂検出フラグＨｒｓを０に初期化する（ステップＳ５３１）。頭頂検出フラグＨｒｓは、頭頂位置が頭頂探索領域ＨＴ１から特定されたか否かを示し、後述するサイズ決定処理（ステップＳ６）で用いられる。頭頂検出フラグＨｒｓが０である場合、頭頂の位置が特定されなかったことを示し、頭頂検出フラグＨｒｓが１以上である場合、頭頂の位置が特定されたことを示す。
【０１５６】
頭頂検出部１４は、頭頂探索領域ＨＴ１内の各画素ラインの頭頂値の平均を算出する（ステップＳ５３２）。頭頂検出部１４は、頭頂探索領域ＨＴ１の画素ラインの中から、判定対象の画素ラインを選択する（ステップＳ５３３）。初回の選択時には、頭頂探索領域ＨＴ１の上から２番目に位置する画素ラインが選択される。
【０１５７】
頭頂検出部１４は、判定対象の画素ラインのＹ座標がＹＰＨＴ２より小さいか否かを判断する（ステップＳ５３４）。判定対象のＹ座標がＹＰＨＴ２より小さい場合（ステップＳ５３４においてＹｅｓ）、頭頂検出部１４は、判定対象の画素ラインの上下に隣接する画素ラインが有する頭頂値のうち、小さいほうの頭頂値を特定する（ステップＳ５３５）。判定対象の画素ラインの頭頂値が特定された頭頂値のｓ倍より大きい場合（ステップＳ５３６においてＹｅｓ）、頭頂検出部１４は、ステップＳ５３７に進む。一方、判定対象の画素ラインの頭頂値が特定された頭頂値のｓ倍以下である場合（ステップＳ５３６においてＮｏ）、頭頂検出部１４は、判定対象の画素ラインが頭頂の条件を満たさないと判断し、次の画素ラインを選択するためにステップＳ５４０に進む。
【０１５８】
頭頂検出部１４は、判定対象の画素ラインの頭頂値が頭頂値の平均のｓ倍以下である場合（ステップＳ５３７においてＮｏ）、頭頂検出部１４は、次の画素ラインを選択するためにステップＳ５４０に進む。一方、判定対象の画素ラインの頭頂値が頭頂値の平均のｓ倍よりも大きい場合（ステップＳ５３７においてＹｅｓ）、頭頂検出部１４は、判定対象の画素ラインが頭頂の条件を満たすと判断し、頭頂検出フラグＨｒｓをインクリメントする（ステップＳ５３８）。頭頂検出部１４は、判定対象の画素ラインのＹ座標を頭頂位置ＨＴｙとして登録する（ステップＳ５３９）。
【０１５９】
頭頂検出部１４は、次の画素ラインを判定対象に選択するために、判定対象の画素ラインのＹ座標をインクリメントする（ステップＳ５４０）。インクリメントされたＹ座標に基づいて、判定対象の画素ラインが新たに選択される（ステップＳ５３３）。
【０１６０】
以下、頭頂検出部１４は、判定対象の画素ラインのＹ座標がＹＰＨＴ２以上となるまで（ステップＳ５３４においてＮｏ）、ステップＳ５３５〜Ｓ５４０を繰り返す。これにより、頭頂位置ＨＴｙは、頭頂の条件を満たす画素ラインが特定される度に更新される（ステップＳ５３９）。この結果、頭頂検出部１４は、頭頂の条件を満たす画素ラインのうち、肩の中心ＰＳＨに最も近い画素ラインを頭頂位置として特定することができる。
【０１６１】
［７．サイズ決定処理（ステップＳ６）］
図２２は、図３に示すサイズ決定処理（ステップＳ６）のフローチャートである。以下、図２２を参照しながら、サイズ決定処理（ステップＳ６）を説明する。
【０１６２】
サイズ決定部１５は、各領域Ｒ１〜Ｒ５における肩の中心の位置、肩幅、足先の位置及び頭頂の位置に基づいて、領域Ｒ１〜Ｒ５の各々に対応する人物の範囲を決定する（ステップＳ６１）。
【０１６３】
サイズ決定部１５は、各領域Ｒ１〜Ｒ５に対応する人物の範囲が、重複するか否かを判定する（ステップＳ６２）。複数の人物の範囲が重複する場合、サイズ決定部は、いずれか１つの人物の範囲を選択し、選択されなかった人物の範囲を消去する。
【０１６４】
［７．１．人物範囲決定（ステップＳ６１）］
図２３は、人物範囲決定処理（ステップＳ６１）のフローチャートである。サイズ決定部１５は、領域Ｒ１〜Ｒ５の各々に対して人物範囲決定処理（ステップＳ６１）を実行することにより、領域Ｒ１〜Ｒ５に対応する人物範囲データ２８を生成する。
【０１６５】
以下、領域Ｒ１に対応する人物範囲を決定する場合を例にして、人物範囲決定処理（ステップＳ６１）について詳しく説明する。サイズ決定部１５は、領域Ｒ１の肩幅を、領域Ｒ１に対応する人物の横サイズに決定する（ステップＳ６１１）。
【０１６６】
次に、サイズ決定部１５は、領域Ｒ１の足先検出フラグＦｒｓが０よりも大きいか否かを判断する（ステップＳ６１２）。足先検出フラグＦｒｓが０よりも大きい場合（ステップＳ６１２においてＹｅｓ）、領域Ｒ１の肩の中心ＰＳＨに対応する足先の位置が、足先検出処理（ステップＳ４）により特定されたことを示す。この場合、サイズ決定部１５は、足先検出処理（ステップＳ４）により特定された足先位置ＴＥｙの使用を決定する（ステップＳ６１３）。
【０１６７】
一方、領域Ｒ１の足先検出フラグＦｒｓが０である場合（ステップＳ６１２においてＮｏ）、領域Ｒ１の肩の中心ＰＳＨに対応する足先の位置が、足先検出処理（ステップＳ４）により特定されなかったことを示す。この場合、サイズ決定部１５は、領域Ｒ１の肩の中心ＰＳＨ及び肩幅に基づいて、足先位置を推定する（ステップＳ６１４）。例えば、サイズ決定部１５は、足先位置の推定用に予め設定された係数を領域Ｒ１の肩幅に乗じ、肩の中心ＰＳＨのＹ座標ＹＳＨに乗算値を加算することにより、足先位置を得ることができる。
【０１６８】
次に、サイズ決定部１５は、領域Ｒ１の頭頂検出フラグＨｒｓが０よりも大きいか否かを判断する（ステップＳ６１５）。頭頂検出フラグＨｒｓが０よりも大きい場合（ステップＳ６１５においてＹｅｓ）、領域Ｒ１の肩の中心ＰＳＨに対応する頭頂の位置が、頭頂検出処理（ステップＳ５）により特定されたことを示す。この場合、サイズ決定部１５は、頭頂検出処理（ステップＳ５）により特定された頭頂位置ＨＴｙの使用を決定する（ステップＳ６１６）。
【０１６９】
一方、領域Ｒ１の頭頂検出フラグＨｒｓが０である場合（ステップＳ６１５においてＮｏ）、領域Ｒ１の肩の中心ＰＳＨに対応する頭頂の位置が、頭頂検出処理（ステップＳ５）により特定されなかったことを示す。この場合、サイズ決定部１５は、ステップＳ６１４と同様の方法で、頭頂位置を推定する（ステップＳ６１７）。頭頂位置の推定用に予め設定された係数は、足先位置推定用の係数と異なる値を有する。
【０１７０】
サイズ決定部１５は、足先位置と頭頂位置とに基づいて、領域Ｒ１に対応する人物の縦サイズを決定する（ステップＳ６１８）。具体的には、頭頂位置のＹ座標を足先位置のＹ座標から減算することにより、縦サイズを求めることができる。サイズ決定部１５は、領域Ｒ１の肩の中心ＰＳＨ，肩幅、足先位置ＴＥｙ，頭頂位置ＨＴｙ、横サイズ及び縦サイズに基づいて、領域Ｒ１に対応する人物範囲を決定し、領域Ｒ１の肩の中心ＰＳＨ，肩幅、足先位置ＴＥｙ，頭頂位置ＨＴｙ、横サイズ及び縦サイズを含む人物範囲データ２８を生成する。同様にして、領域Ｒ２〜Ｒ５に対応する人物範囲データ２８が作成される。
【０１７１】
［７．２．重複判定処理（ステップＳ６２）］
まず、重複判定処理（ステップＳ６２）を実行する理由について説明する。図１２に示すように、枠２７ａにおいて、肩幅を示す２つの領域Ｒ１，Ｒ２が特定されている。これらの領域ごとに人物の範囲が特定されることにより、枠２７ａにおいて、複数の人物範囲が特定される。しかし、図４に示す枠２１ａ（枠２７ａに対応）の中には、１人の人物２１ｍしか存在していない。このように、同じ枠内において２つの肩幅が検出されることにより、１人の人物が別々の人物として検出される場合がある。サイズ決定部１５は、重複判定処理（ステップＳ６２）を実行することにより、１人の人物を誤って複数の人物として検出することを防止する。
【０１７２】
図２４は、重複判定処理（ステップＳ６２）のフローチャートである。図２４に示すように、サイズ決定部１５は、領域Ｒ１〜Ｒ５に対応する人物範囲の中で、重複する人物範囲が存在するか否かを判断する（ステップＳ６２１）。重複する人物範囲が存在する場合（ステップＳ６２１においてＹｅｓ）、サイズ決定部１５は、重複する人物の範囲のうち、面積の一番広い人物範囲に対応する人物範囲データ２８を保持し、その他の人物範囲データ２８を消去する（ステップＳ６２２）。また、サイズ決定部１５は、重複のない人物範囲データ２８をそのまま保持する。
【０１７３】
次に、サイズ決定部１５は、現在保持している人物範囲データ２８のうち、縦サイズと横サイズとの比率が一定の範囲内にない人物範囲データ２８を消去する（ステップＳ６２３）。一定の範囲は、一般的な人物の縦サイズと横サイズとの比率に基づいて決定される。縦サイズとの横サイズとの比率が一定の範囲内に存在しない場合、ステップＳ６１で特定された人物範囲は、人物でないものを誤って人物として検出した結果であると判断される。サイズ決定部１５は、消去されなかった人物範囲データ２８を外部に出力する。
【０１７４】
以上説明したように、本実施の形態の人物検出装置１は、入力画像２１から人物の肩の中心及び肩幅を検出し、検出された肩の中心及び肩幅に基づいて、足先の位置及び頭頂の位置を特定する。検出された肩幅に基づいて、人物の横サイズが決定され、検出された足先の位置及び頭頂の位置に基づいて、人物の縦サイズが決定される。これにより、入力画像２１に含まれる人物の範囲を特定することができる。
【０１７５】
上記実施の形態では、画像認識部１７が対象領域データ２５を作成し、対象領域データ２５で定義された枠２１ａ〜２１ｃ内から人物の範囲を特定する例を説明したが、これに限られない。人物検出装置１は、対象領域データ２５を使用せずに、入力画像２１の全体から肩の中心位置及び肩幅を検出してもよい。
【０１７６】
上記実施の形態では、肩の水平方向の対称性に基づいて、肩の中心位置及び肩幅を入力画像２１から検出する例を説明したが、これに限られない。人物検出装置１は、他の一般的に画像認識処理を用いて、肩の中心位置及び肩幅を求めてもよい。
【０１７７】
上記実施の形態で説明した人物検出装置１において、各機能ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されてもよい。集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１７８】
また、上記実施の形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施の形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０１７９】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施の形態に係る人物検出装置１をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０１８０】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０１８１】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【符号の説明】
【０１８２】
１  人物検出装置
１１  エッジ抽出部
１２  肩検出部
１３  足先検出部
１４  頭頂検出部
１５  サイズ決定部
２１  入力画像
２２  横エッジ画像
２３  縦エッジ画像
２８  人物範囲データ
【図１】
2014186525.tif 000013
【図２】
2014186525.tif 000014
【図３】
2014186525.tif 000015
【図７】
2014186525.tif 000016
【図８】
2014186525.tif 000017
【図９】
2014186525.tif 000018
【図１０】
2014186525.tif 000019
【図１１】
2014186525.tif 000020
【図１３】
2014186525.tif 000021
【図１４】
2014186525.tif 000022
【図１５】
2014186525.tif 000023
【図１６】
2014186525.tif 000024
【図１７】
2014186525.tif 000025
【図１８】
2014186525.tif 000026
【図１９】
2014186525.tif 000027
【図２０】
2014186525.tif 000028
【図２１】
2014186525.tif 000029
【図２２】
2014186525.tif 000030
【図２３】
2014186525.tif 000031
【図２４】
2014186525.tif 000032
【図４】
2014186525.tif 000033
【図５】
2014186525.tif 000034
【図６】
2014186525.tif 000035
【図１２】
2014186525.tif 000036