(57)【要約】【課題】異なる深さの頷きを分類すること。【解決手段】画像処理装置１０は、撮像装置５を用いて撮像した画像フレームを取得し、取得した画像フレームに頭部領域が含まれるかを判定し、頭部領域が含まれると判定した場合に、頭部領域の画像フレームにおける位置と画像フレームに後続する他の画像フレームに含まれる頭部領域の位置とを用いて頭部領域の時系列の第１の変化量を算出し、取得した画像フレームよりも過去の画像フレーム群に含まれる頭部領域の時系列の変化量の頻度分布に基づいて、第１の変化量と比較する閾値を決定し、決定した閾値と第１の変化量を比較して、第１の変化量を評価する、処理を実行する。【選択図】図１
2018116654.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置を用いて撮像した画像フレームを取得し、
取得した前記画像フレームに頭部領域が含まれるかを判定し、
前記頭部領域が含まれると判定した場合に、前記頭部領域の前記画像フレームにおける位置と前記画像フレームに後続する他の画像フレームに含まれる頭部領域の位置とを用いて頭部領域の時系列の第１の変化量を算出し、
取得した前記画像フレームよりも過去の画像フレーム群に含まれる頭部領域の時系列の変化量の頻度分布に基づいて、前記第１の変化量と比較する閾値を決定し、
決定した前記閾値と前記第１の変化量を比較して、前記第１の変化量を評価する、
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項２】
前記決定する処理は、前記頻度分布が含む第１ピーク及び第２ピークの間に形成された谷部に対応する変化量を、前記第１の変化量と比較する閾値として決定することを特徴とする請求項１に記載の画像処理プログラム。
【請求項３】
前記画像フレームに対する前記頭部領域の割合から、前記撮像装置と前記頭部領域の距離を推定する処理をさらに実行し、
前記決定する処理は、前記距離が所定値以上である場合、前記頭部領域の時系列の変化量の第１の頻度分布に基づいて、前記第１の変化量と比較する第１の閾値を決定し、前記距離が所定値未満である場合、前記頭部領域の時系列の変化量の第２の頻度分布に基づいて、前記第１の変化量と比較する第２の閾値を決定し、
前記評価する処理は、前記距離が所定値以上である場合、決定した前記第１の閾値と前記第１の変化量を比較して、前記第１の変化量を評価し、前記距離が所定値未満である場合、決定した前記第２の閾値と前記第１の変化量を比較して、前記第１の変化量を評価することを特徴とする請求項１または２に記載の画像処理プログラム。
【請求項４】
撮像装置を用いて撮像した画像フレームを取得し、
取得した前記画像フレームに頭部領域が含まれるかを判定し、
前記頭部領域が含まれると判定した場合に、前記頭部領域の前記画像フレームにおける位置と前記画像フレームに後続する他の画像フレームに含まれる頭部領域の位置とを用いて頭部領域の時系列の第１の変化量を算出し、
取得した前記画像フレームよりも過去の画像フレーム群に含まれる頭部領域の時系列の変化量の頻度分布に基づいて、前記第１の変化量と比較する閾値を決定し、
決定した前記閾値と前記第１の変化量を比較して、前記第１の変化量を評価する、
処理をコンピュータが実行することを特徴とする画像処理方法。
【請求項５】
撮像装置を用いて撮像した画像フレームを取得する取得部と、
取得した前記画像フレームに頭部領域が含まれるかを判定する判定部と、
前記頭部領域が含まれると判定した場合に、前記頭部領域の前記画像フレームにおける位置と前記画像フレームに後続する他の画像フレームに含まれる頭部領域の位置とを用いて頭部領域の時系列の第１の変化量を算出する算出部と、
取得した前記画像フレームよりも過去の画像フレーム群に含まれる頭部領域の時系列の変化量の頻度分布に基づいて、前記第１の変化量と比較する閾値を決定する閾値決定部と、
決定した前記閾値と前記第１の変化量を比較して、前記第１の変化量を評価する評価部と、
処理をコンピュータが実行することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム、画像処理方法及び画像処理装置に関する。
【背景技術】
【０００２】
人のコミュニケーションでは、言語によるコミュニケーションの他にも、仕草や身振り、いわゆるジェスチャなどの非言語によるコミュニケーションが使用される。この非言語のコミュニケーションの中でも、頷きは、話の聞き手が話し手へ行うフィードバックの動作の一種であり、人の感情や気持ちなどを分析する上で有用である。このような頷きの頻度を定量的に分析するための技術の一例として、画像に含まれる顔領域の垂直方向の変化量から頷きを検知するものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３１５２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、以下に説明するように、異なる意味を有する浅い頷き及び深い頷きを分類することができない場合がある。
【０００５】
すなわち、上記の技術には、頷きがその深さにより異なる意味を持つという想定がそもそも存在しない。例えば、浅い頷きには、聞き手が話し手にそれまでの話の理解と共に話の先を促す意味が含まれる一方で、深い頷きには、聞き手が話し手の意見を肯定して同調する意味が含まれる。このように浅い頷き及び深い頷きの間で意味が異なるにもかかわらず、上記の技術では、異なる意味を持つ頷きが同一視して検知される。
【０００６】
１つの側面では、本発明は、異なる深さの頷きを分類できる画像処理プログラム、画像処理方法及び画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様では、画像処理プログラムは、撮像装置を用いて撮像した画像フレームを取得し、取得した前記画像フレームに頭部領域が含まれるかを判定し、前記頭部領域が含まれると判定した場合に、前記頭部領域の前記画像フレームにおける位置と前記画像フレームに後続する他の画像フレームに含まれる頭部領域の位置とを用いて頭部領域の時系列の第１の変化量を算出し、取得した前記画像フレームよりも過去の画像フレーム群に含まれる頭部領域の時系列の変化量の頻度分布に基づいて、前記第１の変化量と比較する閾値を決定し、決定した前記閾値と前記第１の変化量を比較して、前記第１の変化量を評価する、処理をコンピュータに実行させる。
【発明の効果】
【０００８】
異なる深さの頷きを分類できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係る画像処理装置の機能的構成を示すブロック図である。
【図２】図２は、ユースケースの一例を示す図である。
【図３】図３は、コーナー特徴点の変位波形の一例を示す図である。
【図４】図４は、頷き深さのヒストグラムの一例を示す図である。
【図５】図５は、実施例１に係る全体処理の手順を示すフローチャートである。
【図６】図６は、実施例１に係る頷き検出処理の手順を示すフローチャートである。
【図７】図７は、実施例１に係る閾値決定処理の手順を示すフローチャートである。
【図８】図８は、実施例１に係る分類処理の手順を示すフローチャートである。
【図９】図９は、実施例２に係る画像処理システムの構成例を示す図である。
【図１０】図１０は、ユースケースの他の一例を示す図である。
【図１１】図１１は、実施例２に係る画像処理装置の機能的構成を示すブロック図である。
【図１２】図１２は、頷き深さのヒストグラムの一例を示す図である。
【図１３】図１３は、頷き深さのヒストグラムの一例を示す図である。
【図１４】図１４は、実施例２に係る距離推定処理の手順を示すフローチャートである。
【図１５】図１５は、実施例２に係る閾値決定処理の手順を示すフローチャートである。
【図１６】図１６は、実施例２に係る閾値読出処理の手順を示すフローチャートである。
【図１７】図１７は、実施例１〜実施例３に係る画像処理プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して本願に係る画像処理プログラム、画像処理方法及び画像処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
図１は、実施例１に係る画像処理装置１０の機能的構成を示すブロック図である。図１に示す画像処理装置１０は、ジェスチャ等の非言語のコミュニケーションの中でも、話の聞き手が話し手へ行うフィードバックの動作の一種である頷きを画像から検出する画像処理サービスを提供するものである。
【００１２】
このような画像処理サービスの一環として、画像処理装置１０は、異なる意味を有する浅い頷き及び深い頷きの分類を実現する。例えば、浅い頷きには、聞き手が話し手にそれまでの話の理解と共に話の先を促す意味が含まれる一方で、深い頷きには、聞き手が話し手の意見を肯定して同調する意味が含まれる。
【００１３】
しかしながら、既存の技術の中には、頷きがその深さにより異なる意味を持つという想定がそもそも存在しない。さらに、たとえ既存の技術に改良を加え、予め定められた閾値を用いる判定により、画像から検出される頷きを浅い頷き及び深い頷きに分類しようとしたとしても、必ずしも分類を正確に行うことはできない。なぜなら、画像を撮像する撮像装置と被写体である頭部との位置関係が必ずしも固定であるとは限らないからである。
【００１４】
図２は、ユースケースの一例を示す図である。図２には、アパレルショップの売り場に所属する店員の接客に対する顧客の満足度を店員にフィードバックする前処理として、撮像装置５により撮像される画像から検出される顧客の頷きを分類する場面が示されている。図２に示すように、アパレルショップの売り場には、衣服等を陳列するアパレル什器、例えばガラステーブルやキャスターなどが１つしか含まれないとは限らず、複数のアパレル什器が含まれる場合がある。これら複数のアパレル什器のより多くを撮像範囲５ａに含めることができる位置に撮像装置５が設置される。
【００１５】
このような撮像装置５の設置状況の下では、撮像装置５と被写体である顧客の頭部との位置関係は固定とはならない。例えば、撮像装置５及び顧客の頭部６ａの間の距離がｄ１である位置関係で接客が行われる場合もあれば、撮像装置５及び顧客の頭部６ｂの間の距離がｄ２である位置関係で接客が行われる場合もある。このように位置関係が異なれば、同一の深さの頷きが行われた場合でも、画像フレームに現れる頭部の垂直方向の変化量には差が生じる。すなわち、同一の深さの頷きが行われた場合でも、近い位置関係で画像フレームに現れる頭部の垂直方向の変化量の方が遠い位置関係で画像フレームに現れる頭部の垂直方向の変化量よりも大きくなる。
【００１６】
このため、固定の閾値を用いる判定により、画像から検出される頷きを浅い頷き及び深い頷きに分類するのは困難である。なぜなら、近い位置関係で画像フレームから検出される頷きを浅い頷き及び深い頷きへ分類できるように閾値を設定すれば、遠い位置関係で画像フレームから検出される頷きが深い頷きであったとしても浅い頷きに誤分類される可能性が高まるからである。さらに、遠い位置関係で画像フレームから検出される頷きを浅い頷き及び深い頷きへ分類できるように閾値を設定すれば、近い位置関係で画像フレームから検出される頷きが浅い頷きであったとしても深い頷きに誤分類される可能性が高まるからである。
【００１７】
そこで、本実施例に係る画像処理装置１０は、撮像装置５が撮像する画像フレームから検出される頷きの深さの度数分布に基づいて、画像フレームから検出される頷きの深さを浅い頷き及び深い頷きに分類する閾値を決定する。すなわち、撮像装置５と被写体である顧客の頭部との位置関係が変化する場合でも、頷きの深さの度数分布は、浅い頷きに対応する分布と、深い頷きに対応する分布との２つの山を含む双峰性を有する形状となる。それ故、閾値の一例として、２つの山を分離できる閾値、例えば２つの山の間に形成される谷部の頷きの深さを用いることにより、撮像装置５と被写体の位置関係に依らず、浅い頷き及び深い頷きを分類できる閾値を決定することができる。
【００１８】
図１に示す画像処理装置１０は、パーソナルコンピュータ、各種の携帯端末装置やサーバ装置などの任意のコンピュータとして実装できる。この画像処理装置１０は、図１に示すように、取得部１１と、動作検出部１３と、閾値決定部１５と、閾値記憶部１７ａと、分類部１７とを有する。
【００１９】
図１に示す取得部１１、動作検出部１３、閾値決定部１５及び分類部１７などの機能部は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などのハードウェアプロセッサにより実装される。すなわち、上記の機能部は、プロセッサがＲＡＭ（Random  Access  Memory）等のメモリ上に上記画像処理サービスを実現する画像処理プログラムをプロセスとして展開することにより、仮想的に実現される。ここでは、プロセッサの一例として、ＣＰＵやＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることとしてもかまわない。
【００２０】
また、図１に示す閾値記憶部１７ａの他、上記の機能部が使用するワークエリアには、一例として、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory)やフラッシュメモリもしくはその記憶領域の一部を採用することができる。また、必ずしも主記憶装置が用いられずともよく、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などの補助記憶装置を採用することとしてもかまわない。
【００２１】
また、図１には、上記の機能部および上記の機能部に対するデータの入出力の関係を表す実線が示されているが、これはあくまで例示であり、画像処理装置１０の機能的構成が図１に示す例以外の機能的構成を有することを妨げない。すなわち、画像処理装置１０は、上記の機能部以外の他の機能部を有することとしてもかまわない。例えば、画像処理装置１０は、図１には省略されているが、画像処理装置１０及び他の装置の間を接続する通信インタフェース、例えばネットワークに接続するためのインタフェースなどを有することができる。また、図１に示すデータの入出力の関係は、少なくとも一方から他方へデータが伝送されることが示されており、必ずしも双方向にデータの授受が行われずともかまわない。
【００２２】
取得部１１は、画像フレームを取得する処理部である。
【００２３】
一実施形態として、取得部１１は、撮像装置５により撮像される画像フレームを取得することができる。また、取得部１１は、一連の画像フレームを蓄積するハードディスクや光ディスクなどの補助記憶装置またはメモリカードやＵＳＢ（Universal  Serial  Bus）メモリなどのリムーバブルメディアから画像フレームを取得することもできる。この他、取得部１１は、外部装置からネットワークを介して受信することによって画像フレームを取得することもできる。このように画像処理装置１０が画像を取得する経路は、撮像装置５、ネットワークや記録媒体などの任意の経路であってよく、特定の経路に限定されない。その後、取得部１１は、任意の経路を通じて取得された画像フレームを後段の機能部、すなわち動作検出部１３へ入力する。
【００２４】
動作検出部１３は、画像から人の仕草や身振り、いわゆるジェスチャなどの動作を検出する処理部である。ここでは、動作の一種として、頷きを検出する場合を例示する。
【００２５】
動作検出部１３は、図１に示すように、頭部検出部１３ａと、特徴点検出部１３ｂと、特徴点追跡部１３ｃと、動作判定部１３ｄとを有する。動作検出部１３は、判定部および算出部の一例である。
【００２６】
頭部検出部１３ａは、頭部検出を実行する処理部である。以下では、頭部検出の一例として、顔検出を用いる場合を例示するが、顔検出の代わりに頭部検出を用いることもできる。また、顔検出と頭部検出を適応的に切り替えて用いることもできる。例えば、顔検出により顔領域が検出できない場合、頭部検出により頭部領域を検出することとしてもよい。そして、頭部検出により頭部領域が検出できない場合、画像フレームに頭部が含まれていないとして以降の処理を中止することもできる。
【００２７】
一実施形態として、頭部検出部１３ａは、取得部１１により取得される画像フレームから顔領域を検出する。例えば、P．Viola及びM．Jonesらが下記の文献で提案する顔検出アルゴリズムを用いることができる。すなわち、AdaBoost等の学習アルゴリズムにしたがって、画像内に顔が含まれるポジティブサンプルと画像内に顔が含まれないネガティブサンプルとの学習サンプルが学習される。この学習により、入力とする画像を走査する所定サイズ、例えば２４画素×２４画素や６４画素×６４画素のウィンドウ内で算出されるHaar-like特徴の矩形パターンから顔または非顔を識別する弱識別器ごとに当該弱識別器に与える重みが所定のラウンド数にわたって更新される。この結果、弱識別器の重み付きの多数決により顔または非顔であるかを識別する強識別器が生成される。その上で、頭部検出部１３ａは、取得部１１により画像が取得される度に、当該画像もしくはその積分画像を強識別器のウィンドウで走査する。これにより、頭部検出部１３ａは、強識別器により顔が検出されるウィンドウを顔領域として抽出する。このとき、店員の顔領域ではなく顧客の顔領域を抽出するために、店員が携帯する従業員カードなどを店員のマーカとして、画像フレームから抽出される顔領域のうち当該マーカがない物体と同一のラベルが付与された物体に属する顔領域を抜粋して抽出する処理を追加できることも付言しておく。
【００２８】
P.Viola  M.Jones著  「Robust  Real-Time  Face  Detection」  international  Journal  of  Computer  Vision  57（29,  137-154,  2004
【００２９】
なお、ここでは、機械学習により得られる識別器を用いる場合を例示したが、あくまで一例であり、これに限定されない。例えば、肌色領域の検出を通じて顔領域を検出する方法の他、顔パーツ、例えば目、鼻や口などに着目して顔領域を検出する方法などの他の方法により、顔検出を実行することとしてもかまわない。
【００３０】
特徴点検出部１３ｂは、顔領域から特徴点を検出する処理部である。なお、ここでは、顔領域から特徴点を検出する場合を例示するが、頭部領域から特徴点を検出することができるのは言うまでもない。
【００３１】
一実施形態として、特徴点検出部１３ｂは、頭部検出部１３ａにより検出された顔領域から顔パーツのコーナーを特徴点として検出する。このような特徴点の検出には、一例として、C.Harris及びM.Stephensらが下記の文献で提案する特徴点検出のアルゴリズムを用いることができる。この他にも、ＦＡＳＴ（Features  from  Accelerated  Segment  Test）の特徴点検出などの任意の方法を採用することができるのは言うまでもない。以下では、顔パーツのコーナーのことを「コーナー特徴点」と記載する場合がある。
【００３２】
C.Harris  M.Stephens著  「A  combined  corner  and  edge  detector」  Proceedings  of  the  4th  Alvey  Vision  Conference  (1988)  147−151
【００３３】
特徴点追跡部１３ｃは、画像フレームの間で顔領域の特徴点を追跡する処理部である。
【００３４】
一実施形態として、特徴点追跡部１３ｃは、特徴点検出部１３ｂによりコーナー特徴点の検出が実行された画像フレームＮと、それ以前、例えば１つ前のフレームの画像である画像フレームＮ−１との間でコーナー特徴点の移動ベクトルを算出する。このコーナー特徴点の移動ベクトルの算出には、一例として、B.D.Lucas及びT.Kanadeらが下記の文献で提案するオプティカルフローの推定アルゴリズムを用いることができる。なお、ここでは、顔領域の特徴点の移動ベクトルを算出することにより特徴点の追跡を行う場合を例示したが、頭部領域の特徴点の移動ベクトルを算出することにより特徴点の追跡を実現することとしてもかまわない。
【００３５】
B.D.Lucas  T.Kanade著  「An  Iterative  Image  Registration  Technique  with  an  Application  to  Stereo  Vision」  inProc.  of  Int.  Joint  Conf.  on  Artificial  Intelligence,  pp.674~679,  Aug.
【００３６】
動作判定部１３ｄは、過去の画像フレームに遡って計測される特徴点の垂直方向の変位の時系列データから所定の動作が行われたか否かを判定する処理部である。
【００３７】
一実施形態として、動作判定部１３ｄは、特徴点追跡部１３ｃによりコーナー特徴点の移動ベクトル（ｕ，ｖ）が推定される度に、当該移動ベクトルの垂直成分ｖを累積して加算する。この移動ベクトルの垂直成分ｖは、取得部１１により取得された画像フレームとその１つ前の画像フレームとの間でコーナー特徴点が垂直方向に変化する変化量に対応する。このため、移動ベクトルの垂直成分ｖを画像フレームごとに累積して加算することにより、最初に顔領域が検出された画像フレームで検出されたコーナー特徴点の位置を基準にしてそこからのコーナー特徴点の垂直方向の変位が画像フレームごとに算出される。以下では、顔領域に含まれるコーナー特徴点に関する垂直方向の変位の時系列データのことを「変位波形」と記載することとする。
【００３８】
このように現在の画像フレーム、すなわち取得部１１により画像が取得された最新のフレームにおけるコーナー特徴点の垂直方向の変位が算出される度に、動作判定部１３ｄは、現在の画像フレームから過去の画像フレームに遡って得られたコーナー特徴点の変位波形に頷き動作、例えば頭を下げてから上げる動作が含まれるか否かを判定する。
【００３９】
例えば、動作判定部１３ｄは、現在の画像フレームにおけるコーナー特徴点の変位が極小値であるか否かを判定する。この極小値の判定には、一例として、ゼロクロス法を用いることができる。すなわち、現在の画像フレームにおけるコーナー特徴点の変位が変位波形の微分波形のゼロクロス点であり、かつゼロクロス点と１つ前のゼロクロス点との間で最小値であるか否かの判定により、現在の画像フレームにおけるコーナー特徴点の変位が極小値であるか否かを識別できる。このとき、コーナー特徴点の変位が極小値である場合、動作判定部１３ｄは、コーナー特徴点の変位波形の推移が時系列に極小値、極大値、極小値の順であるか否かを判定する。
【００４０】
ここで、コーナー特徴点の変位波形の推移が時系列に極小値、極大値、極小値の順である場合、頷き動作が行われたと推定できる。この場合、動作判定部１３ｄは、コーナー特徴点の変位波形のうち頷き動作に対応する部分波形、すなわち極小値、極大値、極小値の順に極値が推移する区間の波形を抽出する。以下では、コーナー特徴点の変位波形から抽出される、頷き動作に対応する部分波形のことを「頷き波形」と記載する場合がある。その上で、動作判定部１３ｄは、変位波形から抽出された頷き波形を図示しない内部メモリのワークエリアに保存する。なお、ここでは、顔領域の特徴点の変位波形から頷き波形を抽出する場合を例示したが、頭部領域の特徴点の変位波形からも同様にして頷き波形を抽出することができるのは言うまでもない。
【００４１】
図３は、コーナー特徴点の変位波形の一例を示す図である。図３には、画像フレームの左上の頂点を原点とする画像座標系で算出されたコーナー特徴点の変位波形が示されている。この画像座標系では、垂直方向の下向きの変化量が正と計測される一方で、垂直方向の上向きの変化量が負と計測される。図３に示す縦軸は、コーナー特徴点の垂直方向の変位を示す。また、図３に示す横軸は、時間ｔを示す。図３に示すように、変位波形から頷き波形Ｗ１〜Ｗ８が抽出される。すなわち、極小値ｍ２が検出された時点で極小値ｍ１、極大値Ｍ１、極小値ｍ２の推移が検出される結果、コーナー特徴点の変位波形から頷き波形Ｗ１が抽出される。続いて、極小値ｍ３が検出された時点で極小値ｍ２、極大値Ｍ２、極小値ｍ３の推移が検出される結果、コーナー特徴点の変位波形から頷き波形Ｗ２が抽出される。同様にして、極小値ｍ３、極大値Ｍ３及び極小値ｍ４を含む区間の頷き波形Ｗ３、極小値ｍ４、極大値Ｍ４及び極小値ｍ５を含む区間の頷き波形Ｗ４、極小値ｍ５、極大値Ｍ５及び極小値ｍ６を含む区間の頷き波形Ｗ５、極小値ｍ６、極大値Ｍ６及び極小値ｍ７を含む区間の頷き波形Ｗ６、極小値ｍ７、極大値Ｍ７及び極小値ｍ８を含む区間の頷き波形Ｗ７、さらには、極小値ｍ８、極大値Ｍ８及び極小値ｍ９を含む区間の頷き波形Ｗ８が抽出される。
【００４２】
閾値決定部１５は、頷き波形のピークである頷き深さを分類する閾値を決定する処理部である。
【００４３】
閾値決定部１５は、図１に示すように、深さ算出部１５ａと、分布更新部１５ｂと、閾値算出部１５ｃと、更新適否判定部１５ｄとを有する。
【００４４】
深さ算出部１５ａは、頷き波形のピークである頷き深さを算出する処理部である。
【００４５】
一実施形態として、深さ算出部１５ａは、閾値の更新タイミングであるか否かを判定する。この閾値の更新タイミングの一例として、上記の閾値が設定されていない場合、すなわち閾値がＮＵＬＬ値である場合、さらには、頭部検出部１３ａにより顔領域が検出されない状態から顔領域が検出される状態へ移行した場合などが挙げられる。これらの閾値の更新タイミングである場合、深さ算出部１５ａは、閾値の算出が開始された時点から経過するフレーム数の計測を開始する。すなわち、深さ算出部１５ａは、計測フレーム数ＦｒＮｕｍを保持するレジスタをゼロに初期化し、それ以降に画像フレームが取得される度に計測フレーム数ＦｒＮｕｍの値を１つインクリメントする。
【００４６】
この計測フレーム数ＦｒＮｕｍの更新後、深さ算出部１５ａは、動作判定部１３ｄにより内部メモリのワークエリアに保存された頷き波形のピークを頷き深さｄとして算出する。例えば、図３の例で言えば、頷き波形Ｗ１のピークが頷き深さｄ１として算出される。同様にして、頷き波形Ｗ２〜頷き波形Ｗ８から頷き深さｄ２〜頷き深さｄ８が算出される。なお、頷き深さｄの算出は、必ずしも毎フレームにわたって実行されるとは限らず、動作判定部１３ｄにより頷き波形が抽出されない画像フレームでは内部メモリのワークエリアに頷き波形が保存されないので、頷き深さｄの算出はスキップされる。
【００４７】
分布更新部１５ｂは、頷き深さのヒストグラムを更新する処理部である。ここで言う「ヒストグラム」とは、一例として、頷き深さを階級とし、その頻度を度数とする頻度分布、いわゆる度数分布を指す。
【００４８】
一実施形態として、分布更新部１５ｂは、深さ算出部１５ａにより算出された頷き深さｄが算出される度に、内部メモリのワークエリアに保存された頷き深さのヒストグラムＨ１を更新する。すなわち、分布更新部１５ｂは、内部メモリのワークエリアに保存された頷き深さのヒストグラムＨ１の度数のうち、深さ算出部１５ａにより算出された頷き深さｄに対応する度数をインクリメントすることにより、頷き深さのヒストグラムＨ１を更新する。
【００４９】
閾値算出部１５ｃは、上記の閾値を算出する処理部である。
【００５０】
一実施形態として、閾値算出部１５ｃは、レジスタに保持された計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒよりも小さいか否か、すなわちＦｒＮｕｍ＜Ｆｒであるか否かを判定する。ここで、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満でない場合、頷き深さのヒストグラムＨ１の作成が開始されてから規定フレーム数Ｆｒが経過したことがわかる。この場合、閾値算出部１５ｃは、頷き深さのヒストグラムＨ１に基づいて頷き深さを分類する閾値を算出する。図４は、頷き深さのヒストグラムＨ１の一例を示す図である。図４に示す縦軸は、度数を指す。また、図４に示す横軸は、階級、すなわち頷き深さを指す。図４に示すように、頷き深さのヒストグラムＨ１は、浅い頷きに対応する分布と、深い頷きに対応する分布との２つの山を含む双峰性を有する形状を有する。この特性は、撮像装置５と被写体である顧客の頭部との位置関係に依らず現れる。このため、閾値算出部１５ｃは、モード法などを用いて、２つの山を分離できる閾値、例えば２つの山の間に形成される谷部の極小値における頷きの深さを閾値Ｔｈ１として算出する。なお、ここでは、あくまで一例として、ヒストグラムの２つの山の間に形成される谷部の極小値における頷きの深さを閾値Ｔｈ１とする例を説明したが、必ずしも極小値でなくともよく、度数が谷部の極小値から所定範囲内の頷き深さを閾値Ｔｈ１とすることもできる。
【００５１】
更新適否判定部１５ｄは、閾値記憶部１７ａに記憶された閾値を閾値算出部１５ｃにより算出された閾値に更新する適否を判定する処理部である。以下、閾値記憶部１７ａに記憶された閾値のことを「閾値Ｔｈ０」と識別し、閾値算出部１５ｃにより算出された閾値のことを「閾値Ｔｈ１」と識別する場合がある。
【００５２】
一実施形態として、更新適否判定部１５ｄは、閾値算出部１５ｃにより閾値Ｔｈ１が算出された場合、閾値記憶部１７ａに閾値Ｔｈ０の登録があるか否か、言い換えれば閾値Ｔｈ０の値がＮＵＬＬ値でないか否かを判定する。このとき、閾値記憶部１７ａに閾値Ｔｈ０が未登録である場合、閾値更新の適否を判断するまでもないことがわかる。この場合、更新適否判定部１５ｄは、閾値記憶部１７ａに記憶された閾値Ｔｈ０を閾値算出部１５ｃにより算出された閾値Ｔｈ１に上書きする更新を実行する。
【００５３】
一方、更新適否判定部１５ｄは、閾値記憶部１７ａに閾値Ｔｈ０の登録がある場合、閾値Ｔｈ０の算出に用いられたヒストグラムＨ０および閾値Ｔｈ１の算出に用いられたヒストグラムＨ１ごとに、第１ピークに対応する頷き深さと第２ピークに対応する頷き深さとの差、例えば絶対値を算出する。例えば、図４に示す頷き深さのヒストグラムＨ１の例で言えば、第１ピークＰ１に対応する頷き深さＤ１と第２ピークＰ２に対応する頷き深さＤ２との差の絶対値、すなわち｜Ｄ１−Ｄ２｜を算出する。図示は省略するが、頷き深さのヒストグラムＨ０の場合も、頷き深さのヒストグラムＨ１と同様に、第１ピークと第２ピークの頷き深さの差を算出することができる。
【００５４】
その上で、更新適否判定部１５ｄは、頷き深さのヒストグラムＨ０における第１ピーク及び第２ピークの頷き深さの差と、頷き深さのヒストグラムＨ１における第１ピーク及び第２ピークの頷き深さの差とのギャップが所定値以上であるか否かを判定する。これらのギャップが所定値以上である場合、閾値Ｔｈ０が登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１が登録された時点で画像フレームに含まれる人物とが同一人物でない可能性が高まる。この場合、閾値Ｔｈ０を用いたのでは頷きを正確に分類できない可能性が高まるので、閾値Ｔｈ１を閾値Ｔｈ０に上書きする方がよい可能性が高まる。
【００５５】
このため、更新適否判定部１５ｄは、ギャップが所定値以上である場合、頷き深さのヒストグラムＨ０の面積と、頷き深さのヒストグラムＨ１の面積との比較をさらに実施する。すなわち、更新適否判定部１５ｄは、頷き深さのヒストグラムＨ１の面積が頷き深さのヒストグラムＨ０の面積に所定の面積αが加えられた加算値よりも大きいか否か、すなわちＨ１の面積＞Ｈ０の面積＋αであるか否かを判定する。このとき、Ｈ１の面積＞Ｈ０の面積＋αである場合、閾値Ｔｈ０が登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１が登録された時点で画像フレームに含まれる人物とが同一人物でない可能性がさらに高まる。この場合、更新適否判定部１５ｄは、閾値記憶部１７ａに記憶された閾値Ｔｈ０を閾値算出部１５ｃにより算出された閾値Ｔｈ１に上書きする更新を実行する。
【００５６】
一方、ギャップが所定値以上でない場合、または、頷き深さのヒストグラムＨ１の面積が頷き深さのヒストグラムＨ０の面積に所定の面積αが加えられた加算値よりも大きくない場合、閾値Ｔｈ０が登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１が登録された時点で画像フレームに含まれる人物とが同一人物である余地が残る。この場合、上書き更新は実施されない。なお、ここでは、閾値更新の適否を判定する場合を例示したが、無条件に上書き更新を行うこととしてもかまわない。
【００５７】
分類部１７は、頷き動作を頷き深さにより分類する処理部である。分類部１７は、評価部の一例である。
【００５８】
一実施形態として、分類部１７は、閾値の更新タイミングでない場合、閾値記憶部１７ａに記憶された閾値Ｔｈ０を読み出す。続いて、分類部１７は、動作判定部１３ｄにより内部メモリのワークエリアに保存された頷き波形のピークを頷き深さｄとして算出する。この頷き深さｄの算出は、上記の深さ算出部１５ａと同様の手順で実現できる。その上で、分類部１７は、頷き深さｄが閾値Ｔｈ０以上であるか否か、すなわちｄ≧Ｔｈ０であるか否かを判定する。このとき、頷き深さｄが閾値Ｔｈ０以上である場合、分類部１７は、当該頷き深さｄが算出された頷き動作を「深い頷き」に分類する。一方、頷き深さｄが閾値Ｔｈ０以上でない場合、分類部１７は、当該頷き深さｄが算出された頷き動作を「浅い頷き」に分類する。これにより、異なる深さの頷きの分類を実現できる。さらに、撮像装置５と被写体の位置関係が固定でない場合でも、分類精度の低下を抑制できる。このような分類結果は、所定の出力先に出力することができる。例えば、顧客満足度を算出するアプリケーションプログラムを出力先とすることができる。この場合、深い頷きの回数と、浅い頷きの回数との少なくともいずれか１つを用いて顧客満足度が算出される。この顧客満足度を店員にフィードバックすることにより、接客の品質が向上するのを支援することができる。なお、上記のアプリケーションプログラムは、画像処理装置１０上で動作することとしてもよいし、画像処理装置１０と接続される外部装置上で動作することとしてもかまわない。
【００５９】
（１）全体処理
図５は、実施例１に係る全体処理の手順を示すフローチャートである。この処理は、一例として、撮像装置５から画像フレームが供給される間、繰り返し実行される。図５に示すように、取得部１１により画像フレームが取得されると（ステップＳ１０１）、動作検出部１３は、ステップＳ１０１で取得された画像フレームから遡る一連の画像フレームから頷き動作を検出する「頷き検出処理」を実行する（ステップＳ１０２）。
【００６０】
続いて、閾値決定部１５は、閾値の更新タイミングであるか否かを判定する（ステップＳ１０３）。例えば、閾値決定部１５は、閾値Ｔｈ０が未設定であるか、あるいは顔領域が検出されない状態から顔領域が検出される状態へ移行したかなどのいずれかの条件に該当するか否かを判定する。このとき、閾値の更新タイミングでない場合（ステップＳ１０３Ｎｏ）、閾値決定部１５は、閾値の更新が継続中であるか否か、例えば計測フレーム数ＦｒＮｕｍで規定フレームＦｒを計測中であるか否かを判定する（ステップＳ１０４）。
【００６１】
このとき、閾値の更新タイミングであるか、あるいは閾値の更新が継続中である場合（ステップＳ１０３ＹｅｓまたはステップＳ１０４Ｙｅｓ）、閾値決定部１５は、頷き動作を分類する閾値を決定する閾値決定処理を実行し（ステップＳ１０５）、ステップＳ１０１の処理へ移行する。
【００６２】
一方、閾値の更新タイミングでなく、かつ閾値の更新が継続中でもない場合（ステップＳ１０３ＮｏかつステップＳ１０４Ｎｏ）、分類部１７は、閾値記憶部１７ａに記憶された閾値Ｔｈ０を読み出す（ステップＳ１０６）。その上で、分類部１７は、頷き動作を深い頷きまたは浅い頷きに分類する分類処理を実行し（ステップＳ１０７）、ステップＳ１０１の処理へ移行する。
【００６３】
（２）頷き検出処理
図６は、実施例１に係る頷き検出処理の手順を示すフローチャートである。この処理は、図５に示すステップＳ１０２の処理に対応する。図６に示すように、頭部検出部１３ａは、ステップＳ１０１で取得された画像フレームＮから顔領域を検出する（ステップＳ３０１）。続いて、特徴点検出部１３ｂは、ステップＳ３０１で検出された顔領域から顔のコーナー特徴点を検出する（ステップＳ３０２）。
【００６４】
そして、特徴点追跡部１３ｃは、ステップＳ３０２でコーナー特徴点の検出が実行された画像フレームＮと、それ以前、例えば１つ前のフレームの画像である画像フレームＮ−１との間でコーナー特徴点の移動ベクトルを算出する（ステップＳ３０３）。
【００６５】
その後、動作判定部１３ｄは、ステップＳ３０３で算出されたコーナー特徴点の移動ベクトルの垂直成分ｖをそれまでの累積加算値にさらに累積して加算する（ステップＳ３０４）。これにより、現在の画像フレーム、すなわちステップＳ１０１で画像が取得された最新のフレームにおけるコーナー特徴点の垂直方向の変位が算出される。
【００６６】
そして、動作判定部１３ｄは、現在の画像フレームから過去の画像フレームに遡って得られたコーナー特徴点の変位波形に頷き動作、例えば頭を下げてから上げる動作が含まれるか否かを判定する（ステップＳ３０５）。
【００６７】
このとき、頷き動作が検出された場合（ステップＳ３０５Ｙｅｓ）、動作判定部１３ｄは、コーナー特徴点の変位波形のうち頷き動作に対応する部分波形を頷き波形として抽出した上で当該頷き波形を内部メモリのワークエリアに保存し（ステップＳ３０６）、処理を終了する。なお、頷き動作が検出されない場合（ステップＳ３０５Ｎｏ）、ステップＳ３０６の処理をスキップし、処理を終了する。
【００６８】
（３）閾値決定処理
図７は、実施例１に係る閾値決定処理の手順を示すフローチャートである。この処理は、図５に示すステップＳ１０５の処理に対応する。図７に示すように、深さ算出部１５ａは、レジスタに保持された計測フレーム数ＦｒＮｕｍを更新する（ステップＳ５０１）。例えば、閾値の更新が開始されたタイミングでは、レジスタに保持された計測フレーム数ＦｒＮｕｍの値が初期化される。また、閾値の更新が継続中である場合、レジスタに保持された計測フレーム数ＦｒＮｕｍの値が１つインクリメントされる。
【００６９】
続いて、深さ算出部１５ａは、動作判定部１３ｄにより内部メモリのワークエリアに保存された頷き波形のピークを頷き深さｄとして算出する（ステップＳ５０２）。なお、ステップＳ５０２の処理は、必ずしも毎フレームにわたって実行されるとは限らない。すなわち、図６に示すステップＳ３０６の処理がスキップされた場合、内部メモリのワークエリアに頷き波形が保存されないので、ステップＳ５０２の処理はスキップされる。
【００７０】
そして、分布更新部１５ｂは、内部メモリのワークエリアに保存された頷き深さのヒストグラムＨ１の度数のうち、ステップＳ５０２で算出された頷き深さｄに対応する度数をインクリメントすることにより、頷き深さのヒストグラムＨ１を更新する（ステップＳ５０３）。
【００７１】
続いて、閾値算出部１５ｃは、レジスタに保持された計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒよりも小さいか否か、すなわちＦｒＮｕｍ＜Ｆｒであるか否かを判定する（ステップＳ５０４）。ここで、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満である場合（ステップＳ５０４Ｙｅｓ）、以降の処理をスキップし、処理を終了する。
【００７２】
一方、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満でない場合（ステップＳ５０４Ｎｏ）、頷き深さのヒストグラムＨ１の作成が開始されてから規定フレーム数Ｆｒが経過したことがわかる。この場合、閾値算出部１５ｃは、頷き深さのヒストグラムＨ１に含まれる第１ピーク及び第２ピークを検出する（ステップＳ５０５）。その上で、閾値算出部１５ｃは、モード法等にしたがって、第１ピーク及び第２ピークの２つの山を分離できる閾値、例えば２つの山の間に形成される谷部の極小値における頷きの深さを閾値Ｔｈ１として算出する（ステップＳ５０６）。
【００７３】
続いて、更新適否判定部１５ｄは、閾値記憶部１７ａに閾値Ｔｈ０の登録があるか否か、言い換えれば閾値Ｔｈ０の値がＮＵＬＬ値でないか否かを判定する（ステップＳ５０７）。このとき、閾値記憶部１７ａに閾値Ｔｈ０の登録がある場合（ステップＳ５０７Ｙｅｓ）、更新適否判定部１５ｄは、閾値Ｔｈ０の算出に用いられたヒストグラムＨ０および閾値Ｔｈ１の算出に用いられたヒストグラムＨ１ごとに、第１ピークに対応する頷き深さと第２ピークに対応する頷き深さとの差を算出する（ステップＳ５０８）。
【００７４】
その上で、更新適否判定部１５ｄは、頷き深さのヒストグラムＨ０における第１ピーク及び第２ピークの頷き深さの差と、頷き深さのヒストグラムＨ１における第１ピーク及び第２ピークの頷き深さの差とのギャップが所定値以上であるか否かを判定する（ステップＳ５０９）。
【００７５】
これらのギャップが所定値以上である場合（ステップＳ５０９Ｙｅｓ）、閾値Ｔｈ０が登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１が登録された時点で画像フレームに含まれる人物とが同一人物でない可能性が高まる。この場合、閾値Ｔｈ０を用いたのでは頷きを正確に分類できない可能性が高まるので、閾値Ｔｈ１を閾値Ｔｈ０に上書きする方がよい可能性が高まる。このため、更新適否判定部１５ｄは、頷き深さのヒストグラムＨ０の面積と、頷き深さのヒストグラムＨ１の面積との比較をさらに行う（ステップＳ５１０）。
【００７６】
ここで、頷き深さのヒストグラムＨ１の面積が頷き深さのヒストグラムＨ０の面積に所定の面積αが加えられた加算値よりも大きい場合、すなわちＨ１の面積＞Ｈ０の面積＋αである場合（ステップＳ５１１Ｙｅｓ）、閾値Ｔｈ０が登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１が登録された時点で画像フレームに含まれる人物とが同一人物でない可能性がさらに高まる。この場合、更新適否判定部１５ｄは、閾値記憶部１７ａに記憶された閾値Ｔｈ０をステップＳ５０６で算出された閾値Ｔｈ１に上書きする更新を実行し（ステップＳ５１２）、処理を終了する。
【００７７】
一方、ギャップが所定値以上でない場合、または、頷き深さのヒストグラムＨ１の面積が頷き深さのヒストグラムＨ０の面積に所定の面積αが加えられた加算値よりも大きくない場合（ステップＳ５０９ＮｏまたはステップＳ５１１Ｎｏ）、閾値Ｔｈ０が登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１が登録された時点で画像フレームに含まれる人物とが同一人物である余地が残る。この場合、ステップＳ５１２の上書き更新は実施されず、そのまま処理が終了される。
【００７８】
また、閾値記憶部１７ａに閾値Ｔｈ０が未登録である場合（ステップＳ５０７Ｎｏ）、閾値更新の適否を判断するまでもないことがわかる。この場合、更新適否判定部１５ｄは、閾値記憶部１７ａに記憶された閾値Ｔｈ０をステップＳ５０６で算出された閾値Ｔｈ１に上書きする更新を実行し（ステップＳ５１２）、処理を終了する。
【００７９】
（４）分類処理
図８は、実施例１に係る分類処理の手順を示すフローチャートである。この処理は、図５に示すステップＳ１０７の処理に対応する。図８に示すように、分類部１７は、動作判定部１３ｄにより内部メモリのワークエリアに保存された頷き波形のピークを頷き深さｄとして算出する（ステップＳ７０１）。
【００８０】
その上で、分類部１７は、ステップＳ７０１で算出された頷き深さｄが閾値Ｔｈ０以上であるか否か、すなわちｄ≧Ｔｈ０であるか否かを判定する（ステップＳ７０２）。このとき、頷き深さｄが閾値Ｔｈ０以上である場合（ステップＳ７０２Ｙｅｓ）、分類部１７は、当該頷き深さｄが算出された頷き動作を「深い頷き」に分類し（ステップＳ７０３）、処理を終了する。一方、頷き深さｄが閾値Ｔｈ０以上でない場合（ステップＳ７０２Ｎｏ）、分類部１７は、当該頷き深さｄが算出された頷き動作を「浅い頷き」に分類し（ステップＳ７０４）、処理を終了する。
【００８１】
［実施例１の効果の一側面］
上述してきたように、本実施例に係る画像処理装置１０は、撮像装置５が撮像する画像フレームから検出される頷きの深さの度数分布に基づいて、画像フレームから検出される頷きの深さを浅い頷き及び深い頷きに分類する閾値を決定する。すなわち、撮像装置５と被写体である顧客の頭部との位置関係が変化する場合でも、頷きの深さの度数分布は、浅い頷きに対応する分布と、深い頷きに対応する分布との２つの山を含む双峰性を有する形状となる。それ故、閾値の一例として、２つの山を分離できる閾値、例えば２つの山の間に形成される谷部の頷きの深さを用いることにより、撮像装置５と被写体の位置関係に依らず、浅い頷き及び深い頷きを分類できる閾値を決定することができる。したがって、本実施例に係る画像処理装置１０によれば、異なる深さの頷きを分類することが可能になる。さらに、本実施例に係る画像処理装置１０によれば、撮像装置５と被写体の位置関係が固定でない場合でも、分類精度の低下を抑制できる。
【実施例２】
【００８２】
さて、上記の実施例１では、頷き動作を分類する閾値Ｔｈ０が１つである場合を例示したが、複数の閾値を適応的に切り替えて用いることもできる。そこで、本実施例では、一例として、撮像装置５と被写体の距離が近距離または遠距離であるか否かにより、近距離用の閾値Ｔｈ０Ａ及び遠距離用の閾値Ｔｈ０Ｂを切り替えて頷き動作の分類に用いる例を説明する。
【００８３】
［システム構成］
図９は、実施例２に係る画像処理システムの構成例を示す図である。図９に示す画像処理システム２には、撮像装置５Ａ〜５Ｃと、画像処理装置２０Ａ〜２０Ｃと、サーバ装置２００とが含まれる。以下では、撮像装置５Ａ〜５Ｃを総称する場合に「撮像装置５」と記載すると共に、画像処理装置２０Ａ〜２０Ｃを総称する場合に「画像処理装置２０」と記載する場合がある。
【００８４】
図９に示すように、画像処理装置２０には、撮像装置５が接続される。さらに、画像処理装置及びサーバ装置２００の間は、ネットワークＮＷを介して、互いが通信可能に接続される。このネットワークＮＷには、有線または無線を問わず、インターネット（Internet）を始め、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。
【００８５】
続いて、本実施例に係るユースケースについて説明する。図１０は、ユースケースの他の一例を示す図である。図１０には、アパレルショップの売り場に所属する店員の顧客に対する応対品質を評価する前処理として、撮像装置５により撮像される画像から検出される店員の頷きを分類する場面が示されている。このように店員の頷きを分類する場面でも、図２に示すユースケース、すなわち顧客の頷きを分類する場合と同様に、撮像装置５と被写体である店員の頭部との位置関係は固定とはならない。例えば、撮像装置５及び店員の頭部７ａの間の距離がｄ３である位置関係で接客が行われる場合もあれば、撮像装置５及び店員の頭部７ｂの間の距離がｄ４である位置関係で接客が行われる場合もある。このように位置関係が異なれば、同一の深さの頷きが行われた場合でも、画像フレームに現れる頭部の垂直方向の変化量には差が生じる。すなわち、同一の深さの頷きが行われた場合でも、近い位置関係で画像フレームに現れる頭部の垂直方向の変化量の方が遠い位置関係で画像フレームに現れる頭部の垂直方向の変化量よりも大きくなる。
【００８６】
そこで、本実施例に係る画像処理装置２０は、上記の実施例１と同様のアプローチで深い頷き及び浅い頷きを分類する閾値を適切に決定することに加え、撮像装置５と被写体の距離が近距離または遠距離であるか否かにより、近距離用の閾値Ｔｈ０Ａ及び遠距離用の閾値Ｔｈ０Ｂを切り替えて頷き動作の分類に用いる。
【００８７】
図９の説明に戻り、サーバ装置２００は、頷き動作の分類結果から店員の応対評価を行う評価サービスを提供するコンピュータである。
【００８８】
一実施形態として、サーバ装置２００は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の評価サービスを実現する評価プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置２００は、上記の評価サービスを提供するＷｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の評価サービスを提供するクラウドとして実装することとしてもかまわない。
【００８９】
例えば、サーバ装置２００は、頷き動作の分類結果の一例として、画像処理装置２０から深い頷きの回数および浅い頷きの回数を収集する。このように深い頷きの回数および浅い頷きの回数が収集されると、サーバ装置２００は、深い頷きの回数および浅い頷きの回数から店員の応対品質を評価する評価値を算出する。例えば、深い頷きの頻度が高いほど顧客が発話する話題を理解し、かつその理解を顧客に伝達していると評価できるので、評価値も高く算出する。また、浅い頷きの頻度が高いほど顧客の発話を遮らずに顧客の話しに耳を傾けていると評価できるので、評価値も高く算出する。そうであるからと言って、浅い頷きの頻度が高すぎると顧客にあざとらしさを与えることになるので、上限値を設定し、浅い頷きの頻度が上限値を超える場合、上限値を超える段階に応じて評価値を減じることもできる。このように店員の応対品質に関する評価値が算出された後、サーバ装置２００は、分類結果を収集した画像処理装置２０に店員の応対品質に関する評価値を送信する。これにより、店員の管理者等が店員の成績を評価するのを支援したり、店員の管理者が店員の接客態度を指導するのを支援したりすることができる。
【００９０】
［画像処理装置２０の構成］
図１１は、実施例２に係る画像処理装置２０の機能的構成を示すブロック図である。図１１には、上記の実施例１と同様の機能を発揮する機能部には同一の符号が付与される一方で、図１に追加された機能部または一部の機能が異なる機能部には異なる符号が付与されている。それ故、以下では、異なる符号が付与された機能部の説明に重点を置いて説明を行う一方で、同一の符号が付与された機能部の説明については省略する。
【００９１】
図１１に示すように、画像処理装置２０は、図１に示す画像処理装置１０に比べて、距離推定部２１をさらに有すると共に、閾値決定部２２及び分類部２４の機能の一部が異なる。
【００９２】
距離推定部２１は、撮像装置５と頷きの検出対象とする被写体との距離を推定する処理部である。
【００９３】
一実施形態として、距離推定部２１は、頭部検出部１３ａにより顔領域が検出される度に、次のような処理を実行する。すなわち、距離推定部２１は、頭部検出部１３ａにより検出された顔領域の画素数Ａを計数する。このとき、距離推定部２１は、顔領域に含まれる画素のうち肌色に対応する色を持つ画素を対象とし、画素数Ａを計測することもできる。その上で、距離推定部２１は、顔領域の画素数Ａから、撮像装置５と被写体である顔領域との距離Ｄを算出する。例えば、距離推定部２１は、顔領域の画素数Ａが画像フレームの画素総数で除算された値、すなわち「顔領域の画素数Ａ／画像フレームの画素総数」が所定値、例えば「０．２」以下であるか否かにより、近距離「０」または遠距離「１」の２値に分類される距離Ｄを算出する。すなわち、顔領域の画素数Ａ／画像フレームの画素総数が所定値以上である場合、顔領域の画素数Ａ／画像フレームの画素総数が所定値未満である場合に比べて、顔領域の画素数Ａの割合が相対的に大きいことがわかる。この場合、距離Ｄが近距離「０」に分類される。一方、顔領域の画素数Ａ／画像フレームの画素総数が所定値未満である場合、顔領域の画素数Ａ／画像フレームの画素総数が所定値以上である場合に比べて、顔領域の画素数Ａの割合が相対的に小さいことがわかる。この場合、距離Ｄが遠距離「１」に分類される。その上で、距離推定部２１は、撮像装置５との距離Ｄを後段の機能部、すなわち分布更新部２２ａ、閾値算出部２２ｂ及び分類部２４へ出力する。なお、ここでは、顔領域の画素数から距離Ｄを算出する場合を例示したが、頭部領域の画素数からも同様にして距離Ｄを算出することができる。
【００９４】
分布更新部２２ａは、図１に示す分布更新部１５ｂに比べて、距離推定部２１により推定された距離Ｄが近距離「０」または遠距離「１」であるか否かにより、更新するヒストグラムを切り替える点が異なる。すなわち、分布更新部２２ａは、距離Ｄが近距離「０」である場合、近距離用のヒストグラムＨ１Ａを更新する。一方、分布更新部２２ａは、距離Ｄが遠距離「１」である場合、遠距離用のヒストグラムＨ１Ｂを更新する。
【００９５】
また、閾値算出部２２ｂは、図１に示す閾値算出部１５ｃに比べて、距離推定部２１により推定された距離Ｄが近距離「０」または遠距離「１」であるか否かにより、閾値算出に用いるヒストグラムを切り替える点が異なる。すなわち、閾値算出部２２ｂは、距離Ｄが近距離「０」である場合、近距離用のヒストグラムＨ１Ａから近距離用の閾値Ｔｈ１Ａを算出する。一方、閾値算出部２２ｂは、距離Ｄが遠距離「１」である場合、遠距離用のヒストグラムＨ１Ｂから遠距離用の閾値Ｔｈ１Ｂを算出する。
【００９６】
また、更新適否判定部２２ｃは、図１に示す更新適否判定部１５ｄに比べて、距離推定部２１により推定された距離Ｄが近距離「０」または遠距離「１」であるか否かにより、上書きの適否を判定する閾値を切り替える点が異なる。すなわち、更新適否判定部２２ｃは、距離Ｄが近距離「０」である場合、閾値Ｔｈ１Ａを閾値Ｔｈ０Ａに上書きするか否かを判定する。一方、閾値算出部２２ｂは、距離Ｄが遠距離「１」である場合、閾値Ｔｈ１Ｂを閾値Ｔｈ０Ｂに上書きするか否かを判定する。
【００９７】
また、分類部２４は、図１に示す閾値算出部１５ｃに比べて、距離推定部２１により推定された距離Ｄが近距離「０」または遠距離「１」であるか否かにより、頷き動作の分類を行う場合に読み出す閾値を切り替える点が異なる。すなわち、分類部２４は、距離Ｄが近距離「０」である場合、閾値記憶部２３から閾値Ｔｈ０Ａを読み出す一方で、距離Ｄが遠距離「１」である場合、閾値記憶部２３から閾値Ｔｈ０Ｂを読み出す。
【００９８】
さらに、図１１に示す閾値記憶部２３には、図１に示す閾値記憶部１７ａに比べて、近距離用の閾値Ｔｈ０Ａ及び遠距離用の閾値Ｔｈ０Ｂの２つの閾値が記憶される点が異なる。図１２及び図１３は、頷き深さのヒストグラムの一例を示す図である。図１２には、近距離用のヒストグラムＨ１Ａが示される一方で、図１３には、遠距離用のヒストグラムＨ１Ｂが示されている。図１２及び図１３を対比すると、近距離用のヒストグラムＨ１Ａは、遠距離用のヒストグラムＨ１Ｂに比べて、第１ピーク及び第２ピークを含む分布全体が右寄りとなる。一方、遠距離用のヒストグラムＨ１Ｂは、近距離用のヒストグラムＨ１Ａに比べて、第１ピーク及び第２ピークを含む分布全体が左寄りとなる。このため、近距離用のヒストグラムＨ１Ａから算出される閾値Ｔｈ１Ａの方が遠距離用のヒストグラムＨ１Ｂから算出される閾値Ｔｈ１Ｂよりも大きくなる可能性が高いことがわかる。
【００９９】
（１）距離推定処理
図１４は、実施例２に係る距離推定処理の手順を示すフローチャートである。この処理は、一例として、図６に示すステップＳ３０１で顔領域が検出された後に実行される処理であり、図６に示す頷き検出処理とは並行して実行することができる。
【０１００】
図１４に示すように、距離推定部２１は、頭部検出部１３ａにより検出された顔領域の画素数Ａを計数する（ステップＳ９０１）。このとき、距離推定部２１は、顔領域に含まれる画素のうち肌色に対応する色を持つ画素を対象とし、画素数Ａを計測することもできる。
【０１０１】
その上で、距離推定部２１は、ステップＳ９０１で計数された顔領域の画素数Ａから、撮像装置５と被写体である顔領域との距離Ｄを算出する（ステップＳ９０２）。例えば、距離推定部２１は、顔領域の画素数Ａ／画像フレームの画素総数が所定値以上である場合、撮像装置５との距離Ｄを近距離「０」と推定する。一方、距離推定部２１は、顔領域の画素数Ａ／画像フレームの画素総数が所定値未満である場合、撮像装置５との距離Ｄを遠距離「１」と推定する。
【０１０２】
その後、距離推定部２１は、ステップＳ９０２で推定された撮像装置５との距離Ｄを後段の機能部、すなわち分布更新部２２ａ、閾値算出部２２ｂ及び分類部２４へ出力し（ステップＳ９０３）、処理を終了する。
【０１０３】
（２）閾値決定処理
図１５は、実施例２に係る閾値決定処理の手順を示すフローチャートである。この処理は、図７に示す処理に差し替えて実行することができる。図１５に示すように、深さ算出部１５ａは、レジスタに保持された計測フレーム数ＦｒＮｕｍを更新する（ステップＳ５０１）。例えば、閾値の更新が開始されたタイミングでは、レジスタに保持された計測フレーム数ＦｒＮｕｍの値が初期化される。また、閾値の更新が継続中である場合、レジスタに保持された計測フレーム数ＦｒＮｕｍの値が１つインクリメントされる。
【０１０４】
続いて、深さ算出部１５ａは、動作判定部１３ｄにより内部メモリのワークエリアに保存された頷き波形のピークを頷き深さｄとして算出する（ステップＳ５０２）。なお、ステップＳ５０２の処理は、必ずしも毎フレームにわたって実行されるとは限らない。すなわち、図６に示すステップＳ３０６の処理がスキップされた場合、内部メモリのワークエリアに頷き波形が保存されないので、ステップＳ５０２の処理はスキップされる。
【０１０５】
このステップＳ５０２以降の処理は、図１４に示すステップＳ９０２で推定された撮像装置５との距離Ｄが近距離「０」または遠距離「１」であるか否かにより、分岐する。以下では、近距離「０」に分岐する処理のステップ番号の末尾には「Ａ」を付与する一方で遠距離「１」に分岐する処理のステップ番号の末尾には「Ｂ」を付与し、両者を個別に説明する。
【０１０６】
（２．１）分岐Ａ
例えば、撮像装置５との距離Ｄが近距離「０」である場合（ステップＳ１１０１Ｙｅｓ）、分布更新部２２ａは、内部メモリのワークエリアに保存された頷き深さのヒストグラムＨ１Ａの度数のうち、ステップＳ５０２で算出された頷き深さｄに対応する度数をインクリメントすることにより、近距離用の頷き深さのヒストグラムＨ１Ａを更新する（ステップＳ５０３Ａ）。
【０１０７】
続いて、閾値算出部２２ｂは、レジスタに保持された計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒよりも小さいか否か、すなわちＦｒＮｕｍ＜Ｆｒであるか否かを判定する（ステップＳ５０４Ａ）。ここで、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満である場合（ステップＳ５０４ＡＹｅｓ）、以降の処理をスキップし、処理を終了する。
【０１０８】
一方、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満でない場合（ステップＳ５０４ＡＮｏ）、近距離用の頷き深さのヒストグラムＨ１Ａの作成が開始されてから規定フレーム数Ｆｒが経過したことがわかる。この場合、閾値算出部２２ｂは、近距離用の頷き深さのヒストグラムＨ１Ａに含まれる第１ピーク及び第２ピークを検出する（ステップＳ５０５Ａ）。その上で、閾値算出部２２ｂは、モード法等にしたがって、第１ピーク及び第２ピークの２つの山を分離できる閾値、例えば２つの山の間に形成される谷部の極小値における頷きの深さを閾値Ｔｈ１Ａとして算出する（ステップＳ５０６Ａ）。
【０１０９】
続いて、更新適否判定部２２ｃは、閾値記憶部２３に閾値Ｔｈ０Ａの登録があるか否か、言い換えれば閾値Ｔｈ０Ａの値がＮＵＬＬ値でないか否かを判定する（ステップＳ５０７Ａ）。このとき、閾値記憶部２３に閾値Ｔｈ０Ａの登録がある場合（ステップＳ５０７ＡＹｅｓ）、更新適否判定部２２ｃは、閾値Ｔｈ０Ａの算出に用いられたヒストグラムＨ０Ａおよび閾値Ｔｈ１Ａの算出に用いられたヒストグラムＨ１Ａごとに、第１ピークに対応する頷き深さと第２ピークに対応する頷き深さとの差を算出する（ステップＳ５０８Ａ）。
【０１１０】
その上で、更新適否判定部２２ｃは、頷き深さのヒストグラムＨ０Ａにおける第１ピーク及び第２ピークの頷き深さの差と、頷き深さのヒストグラムＨ１Ａにおける第１ピーク及び第２ピークの頷き深さの差とのギャップが所定値以上であるか否かを判定する（ステップＳ５０９Ａ）。
【０１１１】
これらのギャップが所定値以上である場合（ステップＳ５０９ＡＹｅｓ）、閾値Ｔｈ０Ａが登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１Ａが登録された時点で画像フレームに含まれる人物とが同一人物でない可能性が高まる。この場合、閾値Ｔｈ０Ａを用いたのでは頷きを正確に分類できない可能性が高まるので、閾値Ｔｈ１Ａを閾値Ｔｈ０Ａに上書きする方がよい可能性が高まる。このため、更新適否判定部２２ｃは、頷き深さのヒストグラムＨ０Ａの面積と、頷き深さのヒストグラムＨ１Ａの面積との比較をさらに行う（ステップＳ５１０Ａ）。
【０１１２】
ここで、頷き深さのヒストグラムＨ１Ａの面積が頷き深さのヒストグラムＨ０Ａの面積に所定の面積αが加えられた加算値よりも大きい場合、すなわちＨ１Ａの面積＞Ｈ０Ａの面積＋αである場合（ステップＳ５１１ＡＹｅｓ）、閾値Ｔｈ０Ａが登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１Ａが登録された時点で画像フレームに含まれる人物とが同一人物でない可能性がさらに高まる。この場合、更新適否判定部２２ｃは、閾値記憶部２３に記憶された閾値Ｔｈ０ＡをステップＳ５０６Ａで算出された閾値Ｔｈ１Ａに上書きする更新を実行し（ステップＳ５１２Ａ）、処理を終了する。
【０１１３】
一方、ギャップが所定値以上でない場合、または、頷き深さのヒストグラムＨ１Ａの面積が頷き深さのヒストグラムＨ０Ａの面積に所定の面積αが加えられた加算値よりも大きくない場合（ステップＳ５０９ＡＮｏまたはステップＳ５１１ＡＮｏ）、閾値Ｔｈ０Ａが登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１Ａが登録された時点で画像フレームに含まれる人物とが同一人物である余地が残る。この場合、ステップＳ５１２Ａの上書き更新は実施されず、そのまま処理が終了される。
【０１１４】
また、閾値記憶部２３に閾値Ｔｈ０Ａが未登録である場合（ステップＳ５０７ＡＮｏ）、閾値更新の適否を判断するまでもないことがわかる。この場合、更新適否判定部２２ｃは、閾値記憶部２３に記憶された閾値Ｔｈ０ＡをステップＳ５０６Ａで算出された閾値Ｔｈ１Ａに上書きする更新を実行し（ステップＳ５１２Ａ）、処理を終了する。
【０１１５】
（２．２）分岐Ｂ
例えば、撮像装置５との距離Ｄが遠距離「１」である場合（ステップＳ１１０１Ｎｏ）、分布更新部２２ａは、内部メモリのワークエリアに保存された頷き深さのヒストグラムＨ１Ｂの度数のうち、ステップＳ５０２で算出された頷き深さｄに対応する度数をインクリメントすることにより、遠距離用の頷き深さのヒストグラムＨ１Ｂを更新する（ステップＳ５０３Ｂ）。
【０１１６】
続いて、閾値算出部２２ｂは、レジスタに保持された計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒよりも小さいか否か、すなわちＦｒＮｕｍ＜Ｆｒであるか否かを判定する（ステップＳ５０４Ｂ）。ここで、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満である場合（ステップＳ５０４ＢＹｅｓ）、以降の処理をスキップし、処理を終了する。
【０１１７】
一方、計測フレーム数ＦｒＮｕｍが規定フレーム数Ｆｒ未満でない場合（ステップＳ５０４ＢＮｏ）、遠距離用の頷き深さのヒストグラムＨ１Ｂの作成が開始されてから規定フレーム数Ｆｒが経過したことがわかる。この場合、閾値算出部２２ｂは、遠距離用の頷き深さのヒストグラムＨ１Ｂに含まれる第１ピーク及び第２ピークを検出する（ステップＳ５０５Ｂ）。その上で、閾値算出部２２ｂは、モード法等にしたがって、第１ピーク及び第２ピークの２つの山を分離できる閾値、例えば２つの山の間に形成される谷部の極小値における頷きの深さを閾値Ｔｈ１Ｂとして算出する（ステップＳ５０６Ｂ）。
【０１１８】
続いて、更新適否判定部２２ｃは、閾値記憶部２３に閾値Ｔｈ０Ｂの登録があるか否か、言い換えれば閾値Ｔｈ０Ｂの値がＮＵＬＬ値でないか否かを判定する（ステップＳ５０７Ｂ）。このとき、閾値記憶部２３に閾値Ｔｈ０Ｂの登録がある場合（ステップＳ５０７ＢＹｅｓ）、更新適否判定部２２ｃは、閾値Ｔｈ０Ｂの算出に用いられたヒストグラムＨ０Ｂおよび閾値Ｔｈ１Ｂの算出に用いられたヒストグラムＨ１Ｂごとに、第１ピークに対応する頷き深さと第２ピークに対応する頷き深さとの差を算出する（ステップＳ５０８Ｂ）。
【０１１９】
その上で、更新適否判定部２２ｃは、頷き深さのヒストグラムＨ０Ｂにおける第１ピーク及び第２ピークの頷き深さの差と、頷き深さのヒストグラムＨ１Ｂにおける第１ピーク及び第２ピークの頷き深さの差とのギャップが所定値以上であるか否かを判定する（ステップＳ５０９Ｂ）。
【０１２０】
これらのギャップが所定値以上である場合（ステップＳ５０９ＢＹｅｓ）、閾値Ｔｈ０Ｂが登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１Ｂが登録された時点で画像フレームに含まれる人物とが同一人物でない可能性が高まる。この場合、閾値Ｔｈ０Ｂを用いたのでは頷きを正確に分類できない可能性が高まるので、閾値Ｔｈ１Ｂを閾値Ｔｈ０Ｂに上書きする方がよい可能性が高まる。このため、更新適否判定部２２ｃは、頷き深さのヒストグラムＨ０Ｂの面積と、頷き深さのヒストグラムＨ１Ｂの面積との比較をさらに行う（ステップＳ５１０Ｂ）。
【０１２１】
ここで、頷き深さのヒストグラムＨ１Ｂの面積が頷き深さのヒストグラムＨ０Ｂの面積に所定の面積αが加えられた加算値よりも大きい場合、すなわちＨ１Ｂの面積＞Ｈ０Ｂの面積＋αである場合（ステップＳ５１１ＢＹｅｓ）、閾値Ｔｈ０Ｂが登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１Ｂが登録された時点で画像フレームに含まれる人物とが同一人物でない可能性がさらに高まる。この場合、更新適否判定部２２ｃは、閾値記憶部２３に記憶された閾値Ｔｈ０ＢをステップＳ５０６Ｂで算出された閾値Ｔｈ１Ｂに上書きする更新を実行し（ステップＳ５１２Ｂ）、処理を終了する。
【０１２２】
一方、ギャップが所定値以上でない場合、または、頷き深さのヒストグラムＨ１Ｂの面積が頷き深さのヒストグラムＨ０Ｂの面積に所定の面積αが加えられた加算値よりも大きくない場合（ステップＳ５０９ＢＮｏまたはステップＳ５１１ＢＮｏ）、閾値Ｔｈ０Ｂが登録された時点で画像フレームに含まれる人物と、閾値Ｔｈ１Ｂが登録された時点で画像フレームに含まれる人物とが同一人物である余地が残る。この場合、ステップＳ５１２Ｂの上書き更新は実施されず、そのまま処理が終了される。
【０１２３】
また、閾値記憶部２３に閾値Ｔｈ０Ｂが未登録である場合（ステップＳ５０７ＢＮｏ）、閾値更新の適否を判断するまでもないことがわかる。この場合、更新適否判定部２２ｃは、閾値記憶部２３に記憶された閾値Ｔｈ０ＢをステップＳ５０６Ｂで算出された閾値Ｔｈ１Ｂに上書きする更新を実行し（ステップＳ５１２Ｂ）、処理を終了する。
【０１２４】
（３）閾値読出処理
図１６は、実施例２に係る閾値読出処理の手順を示すフローチャートである。この処理は、一例として、図５に示すステップＳ１０６の処理と差し替えて実行することができる。図１６に示すように、分類部２４は、距離Ｄが近距離「０」であるか否かを判定する（ステップＳ１３０１）。
【０１２５】
そして、距離Ｄが近距離「０」である場合（ステップＳ１３０１Ｙｅｓ）、分類部２４は、閾値記憶部２３から閾値Ｔｈ０Ａを読み出し（ステップＳ１３０２）、処理を終了する。一方、距離Ｄが遠距離「１」である場合（ステップＳ１３０１Ｎｏ）、分類部２４は、閾値記憶部２３から閾値Ｔｈ０Ｂを読み出し（ステップＳ１３０３）、処理を終了する。
【０１２６】
［実施例２の効果の一側面］
上述してきたように、本実施例に係る画像処理装置２０は、上記の実施例１に係る画像処理装置１０と同様に、撮像装置５が撮像する画像フレームから検出される頷きの深さの度数分布に基づいて、画像フレームから検出される頷きの深さを浅い頷き及び深い頷きに分類する閾値を決定する。したがって、本実施例に係る画像処理装置２０によれば、異なる深さの頷きを分類することが可能になる。さらに、本実施例に係る画像処理装置２０によれば、撮像装置５と被写体の位置関係が固定でない場合でも、分類精度の低下を抑制できる。
【０１２７】
さらに、本実施例に係る画像処理装置２０は、撮像装置５と被写体の距離が近距離または遠距離であるか否かにより、近距離用の閾値Ｔｈ０Ａ及び遠距離用の閾値Ｔｈ０Ｂを切り替えて頷き動作の分類に用いる。したがって、本実施例に係る画像処理装置２０によれば、撮像装置５と被写体の位置関係に合わせて閾値を選択できる結果、分類精度の低下をより効果的に抑制できる。
【実施例３】
【０１２８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１２９】
［ユースケースの応用例］
上記の実施例１及び実施例２では、人による接客が行われる場合をユースケースとして例示したが、ロボットにより接客が行われる場合にも、実施例１及び実施例２で説明した各処理を適用できる。例えば、ロボットに撮像装置５を内蔵または付設し、撮像装置５から取った画像フレームをロボット本体に画像処理装置１０または画像処理装置２０の機能を内蔵し、頷き動作の分類結果を含む頷き情報をファイル化してサーバ装置２００等の外部装置に頷き情報を転送し、外部装置上で処理した結果をロボットにフィードバックすることもできる。
【０１３０】
［閾値の応用例］
上記の実施例１及び実施例２では、頷き深さのヒストグラムが浅い頷きに対応する分布と、深い頷きに対応する分布との２つの山を含む双峰性を有する形状を想定したが、必ずしも２つのピークが存在せず、１つしかピークが存在しないケースも生じうる。この場合、１つの山のピークに対応する頷き深さを閾値として算出することとしてもかまわない。
【０１３１】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、画像処理装置１０または画像処理装置２０が有する機能部の一部を画像処理装置１０または画像処理装置２０の外部装置としてネットワーク経由で接続するようにしてもよい。また、画像処理装置１０または画像処理装置２０が有する機能部の一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の画像処理装置１０または上記の画像処理装置２０の機能を実現するようにしてもよい。
【０１３２】
［画像処理プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１７を用いて、上記の実施例と同様の機能を有する画像処理プログラムを実行するコンピュータの一例について説明する。
【０１３３】
図１７は、実施例１〜実施例３に係る画像処理プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１７に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１３４】
ＨＤＤ１７０には、図１７に示すように、上記の実施例１で示した取得部１１、動作検出部１３、閾値決定部１５及び分類部１７と同様の機能を発揮する画像処理プログラム１７０ａが記憶される。この画像処理プログラム１７０ａは、図１に示した取得部１１、動作検出部１３、閾値決定部１５及び分類部１７の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。なお、ここでは、あくまで一例として、上記の実施例１で示した取得部１１、動作検出部１３、閾値決定部１５及び分類部１７と同様の機能を発揮する画像処理プログラム１７０ａがＨＤＤ１７０に記憶される場合を例示したが、上記の実施例２で示した取得部１１、動作検出部１３、距離推定部２１、閾値決定部２２及び分類部２４と同様の機能を発揮する画像処理プログラム１７０ａが記憶されることとしてもかまわない。
【０１３５】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から画像処理プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、画像処理プログラム１７０ａは、図１７に示すように、画像処理プロセス１８０ａとして機能する。この画像処理プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち画像処理プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、画像処理プロセス１８０ａが実行する処理の一例として、図５〜図８や図１４〜図１６に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１３６】
なお、上記の画像処理プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に画像処理プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から画像処理プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに画像処理プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから画像処理プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【０１３７】
５    撮像装置
１０    画像処理装置
１１    取得部
１３    動作検出部
１３ａ  頭部検出部
１３ｂ  特徴点検出部
１３ｃ  特徴点追跡部
１３ｄ  動作判定部
１５    閾値決定部
１５ａ  深さ算出部
１５ｂ  分布更新部
１５ｃ  閾値算出部
１５ｄ  更新適否判定部
１７    分類部
１７ａ  閾値記憶部
【図１】
2018116654.tif 000003
【図２】
2018116654.tif 000004
【図３】
2018116654.tif 000005
【図４】
2018116654.tif 000006
【図５】
2018116654.tif 000007
【図６】
2018116654.tif 000008
【図７】
2018116654.tif 000009
【図８】
2018116654.tif 000010
【図９】
2018116654.tif 000011
【図１０】
2018116654.tif 000012
【図１１】
2018116654.tif 000013
【図１２】
2018116654.tif 000014
【図１３】
2018116654.tif 000015
【図１４】
2018116654.tif 000016
【図１５】
2018116654.tif 000017
【図１６】
2018116654.tif 000018
【図１７】
2018116654.tif 000019