以下に、本発明に係る同一人判定装置、同一人判定方法および同一人判定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、図1〜図4を参照しながら、本実施例に係る同一人判定方法について説明する。図1は、本実施例に係る同一人判定方法で用いられる画像データがどのようにして撮影されるかを示している。図1に示す例では、第1の撮像装置である撮像装置11と第2の撮像装置である撮像装置12によって撮影対象範囲にいる人物がほぼ同時に撮影される。
撮像装置11の撮影範囲には、人物H1および人物H2がおり、撮像装置11によって撮影された第1の画像データである画像データ21内には、人物H1の顔領域faと、人物H2の顔領域fbとが含まれる。また、撮像装置12の撮影範囲には、人物H1、人物H2および人物H3がおり、撮像装置12によって撮影された第2の画像データである画像データ22内には、人物H1の顔領域fcと、人物H2の顔領域fdと、人物H3の顔領域feとが含まれる。
撮像装置11の撮影範囲と撮像装置12の撮影範囲は、部分的に重複しているため、人物H1と人物H2がそれぞれの撮像装置が撮影した画像データの中に重複して写りこんでいる。本実施例に係る同一人判定方法は、このようにして撮影された各画像データ中に写りこんでいる人物のうちどの画像のどの人物とどの画像のどの人物が同一人であるかを判定するために用いられる。
なお、撮像装置11と撮像装置12は、所定の場所に固定されていてもよいし、可動になっていてもよいが、それぞれが撮影を行ったときの位置、向きおよび画角は取得できるものとする。ここで、撮影時における撮像装置11と撮像装置12の位置および向きは、他方の撮像装置に対する相対値であってもよい。
図2および図3は、本実施例に係る同一人判定方法による同一人の判定の仕方を示している。本実施例に係る同一人判定方法では、同一人の候補毎に同一人であるか否かの判定が行われる。図2は、画像データ21中の顔領域faと、画像データ22中の顔領域fcとが同一人の候補である場合を示している。図2において、31と41は、それぞれ、撮像装置11の撮像面とレンズの焦点であり、32と42は、それぞれ、撮像装置12の撮像面とレンズの焦点である。
この場合、まず、焦点41を始点として、顔領域fa中の右目の位置p1aに対応する撮像面31上の点を通過する直線L1と、焦点41を始点として、顔領域fa中の左目の位置p2aに対応する撮像面31上の点を通過する直線L2が算出される。また、焦点42を始点として、顔領域fc中の右目の位置p1cに対応する撮像面32上の点を通過する直線L3と、焦点42を始点として、顔領域fc中の左目の位置p2cに対応する撮像面32上の点を通過する直線L4が算出される。
これらの直線を求めるために必要な撮像面31の幅W1および図示しない高さH1と撮像面32の幅W2および図示しない高さH2は、撮像装置11と撮像装置12の仕様として予め決められており、撮像面31と撮像面32の位置および向きは撮影時の撮像装置11と撮像装置12の位置および向きから算出される。また、焦点41の位置は、撮影時の撮像装置11の画角と、撮像面31の幅W1と、撮影時の撮像装置11の位置および向きとから算出され、焦点42の位置は、撮影時の撮像装置12の画角と、撮像面32の幅W2と、撮影時の撮像装置12の位置および向きとから算出される。
なお、図2は、図示を簡略化するため横方向であるX軸方向と奥行き方向であるZ軸方向からなる二次元空間における直線L1〜L4について図示しているが、実際には直線L1〜L4は三次元空間上で計算される。すなわち、直線L1〜L4は高さ方向であるY軸方向についても算出される。したがって、図2において直線L1と直線L3は交点P1において交わっているように見えるが、直線L1と直線L3は、高さ方向について見ると交わっていない可能性がある。また、図2において直線L2と直線L4は交点P2において交わっているように見えるが、直線L2と直線L4は、高さ方向について見ると交わっていない可能性がある。
こうして算出された直線L1は、撮影時において焦点41からみて顔領域faに対応する人物の右目が存在していた方向を示しており、直線L3は、撮影時において焦点42からみて顔領域fcに対応する人物の右目が存在していた方向を示している。このため、顔領域faに対応する人物と顔領域fcに対応する人物が同一人であれば、撮影時において、その人物の右目は、直線L1と直線L3の交点P1に存在していたことになる。
また、こうして算出された直線L2は、撮影時において焦点41からみて顔領域faに対応する人物の左目が存在していた方向を示しており、直線L4は、撮影時において焦点42からみて顔領域fcに対応する人物の左目が存在していた方向を示している。このため、顔領域faに対応する人物と顔領域fcに対応する人物が同一人であれば、撮影時において、その人物の左目は、直線L2と直線L4の交点P2に存在していたことになる。
したがって、顔領域faに対応する人物と顔領域fcに対応する人物が同一人であれば、交点P1と交点P2が存在し、交点P1と交点P2の距離が、その人物の右目と左目の間隔となる。ここで、一般的に、人間の右目と左目の間隔は所定の範囲(例えば、6cm前後)にあることが知られている。そこで、本実施例に係る同一人判定方法では、直線L1と直線L3の交点P1と、直線L2と直線L4の交点P2とが存在するか否かを判定し、交点P1と交点P2のいずれか一方でも存在しなければ、顔領域faに対応する人物と顔領域fcに対応する人物が同一人でないと判定する。そして、交点P1と交点P2が存在する場合は、交点P1と交点P2の距離を算出し、算出された距離が所定の範囲内であれば、顔領域faに対応する人物と顔領域fcに対応する人物が同一人であると判定し、算出された距離が所定の範囲内でなければ、顔領域faに対応する人物と顔領域fcに対応する人物が同一人でないと判定する。
なお、精度の問題から、顔領域faに対応する人物と顔領域fcに対応する人物が同一人であっても、直線L1とL3が交わらなかったり、直線L2とL4が交わらなかったりする恐れがある。そこで、本実施例に係る同一人判定方法では、2つの直線上の点のうち他方の直線に最も接近する点同士を結ぶ線分の長さ、すなわち、2つの直線の最短距離が予め決められた閾値Tdよりも短い場合は、それらの直線は交わるものと判定し、最も接近する点同士を結ぶ線分の中間点を交点として扱う。
図2の例では、顔領域faに対応する人物と顔領域fcに対応する人物は、いずれも人物H1であるので、交点P1と交点P2が存在し、交点P1と交点P2の距離は所定の範囲となり、同一人であるとの判定がなされる。
図3は、画像データ21中の顔領域faと、画像データ22中の顔領域fdとが同一人の候補である場合を示している。
この場合、焦点41を始点として、顔領域fa中の右目の位置p1aに対応する撮像面31上の点を通過する直線L1と、焦点41を始点として、顔領域fa中の左目の位置p2aに対応する撮像面31上の点を通過する直線L2が算出される。また、焦点42を始点として、顔領域fd中の右目の位置p1dに対応する撮像面32上の点を通過する直線L3’と、焦点42を始点として、顔領域fc中の左目の位置p2dに対応する撮像面32上の点を通過する直線L4’が算出される。
そして、直線L1と直線L3’の交点P1’と、直線L2と直線L4’の交点P2’とが存在するか否かが判定され、交点P1’と交点P2’が存在すると判定された場合は、それらの距離が算出される。そして、交点の有無と、算出された距離が所定の範囲内であるか否かとに基づいて、顔領域faに対応する人物と顔領域fdに対応する人物が同一人であるか否かが判断される。
図3の例では、顔領域faに対応する人物は人物H1であるのに対し、顔領域fdに対応する人物は人物H2であるので、交点P1と交点P2の少なくとも一方が存在しないか、交点P1と交点P2の距離が所定の範囲外となり、同一人でないとの判定がなされる。なお、図3に示した例では、交点の距離が所定の範囲よりも大きくなっているが、候補の組み合わせによっては、交点の距離が所定の範囲よりも小さくなる場合もある。
ところで、本実施例に係る同一人判定方法では、同一人であるか否かの判定に加えて、同一人と判定した人物の位置と向きとを算出することができる。既に説明したように、本実施例に係る同一人判定方法では、撮影時において人物の右目と左目が存在していた位置が直線の交点として算出される。このため、例えば、それらの交点を基準として人物の位置を算出することができる。また、それらの交点を結ぶ直線に対して垂直な方向を人物の向きとして算出することができる。
図4は、図2において同一人と判定された人物の位置と向きの算出例を示している。この例では、人物の位置は、交点P1と交点P2の中間点P3として算出されている。また、この例では、人物の向きは、交点P1と交点P2を結ぶ直線に対して垂直な直線と、焦点41と焦点42を結ぶ直線とがなす角度R1として算出されている。
なお、上記の説明では、2台の撮像装置を用いる例について説明したが、本実施例に係る同一人判定方法は、3台以上の撮像装置を用いて撮影対象範囲を撮影する場合にも適用できる。また、上記の説明では、右目と左目の位置を算出した結果に基づいて同一人であるか否かの判定を行う例を示したが、顔の他の部位の位置を算出した結果に基づいて同一人であるか否かの判定を行うこととしてもよい。例えば、右目と口の位置を算出し、その距離が所定の範囲にあるか否かに基づいて同一人であるか否かの判定を行うこととしてもよい。
また、上記の説明は、右目と左目の位置を示す交点を三次元座標上で算出することを前提としているが、例えば、高さ情報を省略して、右目と左目の位置を示す交点を二次元座標上で算出することとしてもよい。この場合、縦に並んだ別人の顔領域を同一人のものと判定することを避けるため、画像データにおける顔領域の高さの差が予め決められた範囲内にあるか否かを判定し、顔領域の高さの差が範囲外であれば、同一人でないと判定することが好ましい。
次に、本実施例に係る同一人判定方法を実行する同一人判定装置100の構成について説明する。なお、以下の説明では、既に説明した部分と同様の部分については、既に説明した部分と同一の符号を付して、重複する説明を省略する。
図5に示すように、同一人判定装置100は、入力部110と、表示部120と、記憶部130と、制御部140とを有する。入力部は、同一人判定装置100が各種情報や指示を入力する装置であり、例えば、キーボードである。表示部120は、利用者向けに文字や画像を表示する装置であり、例えば、液晶表示装置である。
記憶部130は、各種情報を記憶する装置であり、例えば、ハードディスク装置や半導体記憶装置である。記憶部130は、撮像装置11によって撮影された画像データ21、撮像装置12によって撮影された画像データ22、判定結果データ131等を記憶する。画像データ21および画像データ22は、光ディスクやメモリカード等の記憶媒体を介して撮像装置11および撮像装置12から同一人判定装置100へ送られてもよいし、有線または無線のネットワークを介して撮像装置11および撮像装置12から同一人判定装置100へ送られてもよい。
判定結果データ131は、制御部140によって実行される判定処理の処理結果を保持する。具体的には、判定結果データ131は、画像データ21、または画像データ22、またはその両方に含まれる人物ごとに、画像データ21における顔領域を囲む最小矩形の位置と大きさに関する情報と、画像データ22における顔領域を囲む最小矩形の位置と大きさに関する情報と、撮影時におけるその人物の位置と向きに関する情報と、画像処理を行う場合に画像データ21と画像データ22のいずれを使用すべきかを示す情報とを保持する。
図1に示した画像データ21および画像データ22を対象として判定処理が実行された場合の判定結果データ131の一例を図6に示す。図6に示す判定結果データ131の2行目は、図1に示した人物H2(顔領域fbおよびfd)に対応し、画像データ21における顔領域を囲む最小矩形の位置と大きさに関する情報として、x=840、y=400、幅=80、高さ=90が設定され、画像データ22における顔領域を囲む最小矩形の位置と大きさに関する情報として、x=380、y=400、幅=80、高さ=90が設定され、撮影時におけるその人物の位置と向きに関する情報として、x=870、z=1540、向き=110度が設定され、画像処理を行う場合に画像データ21と画像データ22のいずれを使用すべきかを示す情報として、1(画像データ21を使用すべきことを示す値)が設定されている。
また、図6に示す判定結果データ131の3行目は、図1に示した人物H3(顔領域fe)に対応し、画像データ22における顔領域を囲む最小矩形の位置と大きさに関する情報として、x=760、y=520、幅=75、高さ=85が設定され、撮影時におけるその人物の位置と向きに関する情報として、x=1180、z=1200、向き=50度が設定され、画像処理を行う場合に画像データ21と画像データ22のいずれを使用すべきかを示す情報として、2(画像データ22を使用すべきことを示す値)が設定されている。なお、図6に示す判定結果データ131の3行目では、画像データ21における顔領域を囲む最小矩形の位置と大きさに関する情報が空となっている。これは、対応する人物の顔が、画像データ21には写っていないことを示している。
制御部140は、同一人判定装置100を全体制御する制御部であり、顔領域抽出部141と、同一人判定部142と、方向算出部143と、交点算出部144と、二点間距離算出部145と、位置算出部146と、処理対象画像選択部147と、位置推定部148とを含む。
顔領域抽出部141は、画像データ21と画像データ22に含まれる全ての顔領域を抽出し、抽出した各顔領域を囲む最小矩形の位置と大きさを出力する。なお、顔領域の抽出については、いずれの公知の技術を用いても構わない。
同一人判定部142は、顔領域抽出部141によって画像データ21から抽出された顔領域に対応する人物と、顔領域抽出部141によって画像データ22から抽出された顔領域に対応する人物とが同一人であるかを判定し、同一人である場合は、その人物に関する情報を判定結果データ131へ出力する。同一人判定部142は、上記の機能を実現するため、同一人判定部142と、方向算出部143と、交点算出部144と、二点間距離算出部145と、位置算出部146と、処理対象画像選択部147とを制御する。
具体的には、同一人判定部142は、同一人判定部142と、方向算出部143と、交点算出部144とを制御して、画像データ21から抽出された顔領域に対応する人物と画像データ22から抽出された顔領域に対応する人物とが同一人である場合におけるその人物の右目と左目の位置を取得する。そして、右目と左目の位置が取得され、かつ、取得された右目と左目の位置の距離が、所定の範囲(例えば、6cm前後数mmの範囲)にある場合は、それぞれの顔領域に対応する人物が同一人であると判断して、位置算出部146にその人物の位置と向きを算出させ、処理対象画像選択部147に画像処理を行う場合に使用すべき画像を選択させ、その結果を判定結果データ131へ出力する。
方向算出部143は、指定された顔領域に含まれる右目が、撮影時において、その顔領域を含む画像データを撮影した撮像装置のレンズの焦点からみて存在していた方向と、指定された顔領域に含まれる左目が、撮影時において、その顔領域を含む画像データを撮影した撮像装置のレンズの焦点からみて存在していた方向とを算出する。
交点算出部144は、撮像装置11のレンズの焦点から、画像データ21に含まれる顔領域の右目について方向算出部143が算出した方向へ伸びる直線と、撮像装置12のレンズの焦点から、画像データ22に含まれる顔領域の右目について方向算出部143が算出した方向へ伸びる直線とが交点を有するか否かを判定し、交点を有する場合は交点の座標を右目の位置として算出する。また、交点算出部144は、撮像装置11のレンズの焦点から、画像データ21に含まれる顔領域の左目について方向算出部143が算出した方向へ伸びる直線と、撮像装置12のレンズの焦点から、画像データ22に含まれる顔領域の左目について方向算出部143が算出した方向へ伸びる直線とが交点を有するか否かを判定し、交点を有する場合は交点の座標を左目の位置として算出する。
二点間距離算出部145は、交点算出部144によって算出された2つの交点の距離を算出する。二点間距離算出部145によって算出される距離は、画像データ21から抽出された顔領域に対応する人物と画像データ22から抽出された顔領域に対応する人物とが同一人である場合におけるその人物の右目と左目の距離に相当する。
位置算出部146は、同一人と判定された人物の撮影時における位置と向きを、同一人判定部142と、方向算出部143と、交点算出部144の算出結果に基づいて算出する。位置推定部148は、画像データ21と画像データ22のうち、同一人と判定された人物について画像処理を行う場合により好ましい画像データを、位置算出部146の算出結果に基づいて選択する。
画像処理を行う場合の画像データは、人物の向きが撮像装置の撮像面に対して垂直に近いほど好ましく、人物と撮像装置の距離が短いほど好ましく、また、人物の位置が撮像装置の撮影範囲の中央に近いほど好ましい。位置推定部148は、これらの各判断要素についての2つの画像データの判断結果を、判断要素ごとに予め決められた重みを用いて評価して、画像処理を行う場合により好ましい画像データを選択する。
位置推定部148は、画像データ21に含まれる顔領域のうち、画像データ22に含まれるいずれかの顔領域と同一人であると判定されなかった顔領域に対応する人物と、画像データ22に含まれる顔領域のうち、画像データ21に含まれるいずれかの顔領域と同一人であると判定されなかった顔領域に対応する人物の撮影時における位置と向きを推定し、その結果を判定結果データ131へ出力する。
位置推定部148によって判定結果データ131へ出力されるデータは、図6の3行目のように、画像データ21における顔領域を囲む最小矩形の位置と大きさに関する情報と、画像データ22における顔領域を囲む最小矩形の位置と大きさに関する情報のいずれかが空となる。また、位置推定部148によって判定結果データ131へ出力されるデータについては、画像処理を行う場合に使用すべき画像として、顔領域を含む画像が常に選択される。
位置推定部148による人物の撮影時における位置と向きの推定について図7および図8を参照しながら説明する。図7および8は、図1に示した人物H3の位置と向きを推定する例を示している。図7および8に示すように、撮影時において、人物H3の右目は、画像データ22における右目の位置p1eに対応する撮像面32上の位置と焦点42とを結ぶ直線L5上にあり、人物H3の左目は、画像データ22における左目の位置p2eに対応する撮像面32上の位置と焦点42とを結ぶ直線L6上に存在する。
ここで、位置推定部148は、推定対象の人物が撮像装置に対して正面を向けているものと仮定して、その人物の位置と向きを推定する。このように仮定すると、焦点42から人物H3の右目の位置までの距離と、焦点42から人物H3の左目の位置までの距離は等しいこととなる。換言すると、人物H3の右目の位置と左目の位置とを結ぶ線分は、焦点42から人物H3の右目の位置までを結ぶ線分と、焦点42から人物H3の左目の位置までを結ぶ線分とを等しい長さの辺とする二等辺三角形の底辺に相当することとなる。
この二等辺三角形の底辺の長さLBは、人物H3の右目と左目の距離であるから、一般的な人間の目間の距離(例えば、6cm)と想定される。そして、二等辺三角形の頂角の角度は、直線L5と直線L6の角度の差として求められる。このように底辺の長さLBと頂角の角度が分かれば、二等辺三角形の等しい二辺の長さLSは、幾何学的に算出することができる。こうして、例えば、人物H3の位置は、二等辺三角形の底辺の中央の点Pとして推定でき、人物H3の向きは、点Pから焦点42へ向かう方向として推定できる。
なお、位置推定部148は、推定対象の人物が撮像装置に対して正面を向けているものと仮定して人物の位置を推定することとしたが、推定対象の人物の顔の向きを検出する技術を組み合わせることによって、位置推定部148が推定する位置の精度をさらに高めることができる。推定対象の人物の顔の向きを検出する技術としては、例えば、特開2007−004767によって開示されている技術を用いることができる。
人物の顔の向きを検出する技術を組み合わせる場合、例えば、以下のようにして人物の位置を算出する。顔の向きに応じた目間の距離と角度を予め設定しておき、検出された顔の向きに対応する目間の距離と角度を取得する。そして、画像データに基づいて、撮像装置のレンズの焦点から右目の方向へ伸びる直線と左目の方向とへ伸びる直線をと算出する。ここで、推定対象の人物の右目の位置Prは、焦点から右目の方向へ伸びる直線上にあり、推定対象の人物の左目の位置Plは、焦点から左目の方向へ伸びる直線上にあり、位置Prと位置Plの距離は取得された距離に一致し、位置Prと位置Plを結ぶ直線の角度は取得された角度に一致するため、位置Prと位置Plについては幾何学的に算出することができる。
次に、同一人判定装置100の動作について図9〜図11を参照しながら説明する。図9に示すように、まず、顔領域抽出部141が、画像データ21に含まれる顔領域を全て抽出し(ステップS101)、画像データ22に含まれる顔領域を全て抽出する(ステップS102)。そして、同一人判定部142は、画像データ21から抽出された顔領域を特定するための変数jを1に初期設定し、画像データ22から抽出された顔領域を特定するための変数kを1に初期設定する(ステップS103)。
続いて、同一人判定部142は、画像データ21から抽出されたj番目の顔領域を選択する(ステップS104)。j番目の顔領域を選択できた場合(ステップS105肯定)、同一人判定部142は、画像データ22から抽出されたk番目の顔領域を選択する(ステップS106)。
ここで、k番目の顔領域を選択でき(ステップS107肯定)、かつ、k番目の顔領域を画像データ21から抽出されたいずれかの顔領域と組み合わせて判定結果データ131に出力していない場合(ステップS108否定)、同一人判定部142は、後述する同一人判定処理を実行する(ステップS109)。
同一人判定処理によって、j番目の顔領域に対応する人物とk番目の顔領域に対応する人物とが同一人と判定された場合(ステップS110肯定)、同一人判定部142は、画像データ21におけるj番目の顔領域の位置に関する情報と、画像データ22におけるk番目の顔領域の位置に関する情報と、同一人と判定された人物の撮影時における位置および向きと、画像処理を行う場合に使用すべき画像データの番号とを判定結果データ131に出力する(ステップS112)。そして、同一人判定部142は、変数jに1を加算し、変数kを1に設定し直して、ステップS104以降の処理手順を再実行する(ステップS113)。
同一人判定処理によって、j番目の顔領域に対応する人物とk番目の顔領域に対応する人物とが同一人と判定されなかった場合(ステップS110否定)、同一人判定部142は、変数kに1を加算して、ステップS106以降の処理手順を再実行する(ステップS111)。
k番目の顔領域を画像データ21から抽出されたいずれかの顔領域と組み合わせて判定結果データ131に出力していた場合(ステップS108肯定)、同一人判定部142は、同一人判定処理を実行することなく、変数kに1を加算して、ステップS106以降の処理手順を再実行する(ステップS111)。また、画像データ22から抽出されたk番目の顔領域を選択できなかった場合、すなわち、画像データ21から抽出されたj番目の顔領域を、画像データ22から抽出された全ての顔領域と照合し終えた場合(ステップS107否定)、同一人判定部142は、変数jに1を加算し、変数kを1に設定し直して、ステップS104以降の処理手順を再実行する(ステップS113)。
こうして、各画像データから抽出された顔領域を照合していき、ステップS104でj番目の顔領域を選択できなくなった場合、すなわち、全ての顔領域の組み合わせについて照合が完了した場合(ステップS105否定)、位置推定部148が、画像データ21から抽出された顔領域と画像データ22から抽出された顔領域のうち、判定結果データ131へ出力されていないものを1つ選択する(ステップS114)。
そして、選択できたならば(ステップS115肯定)、位置推定部148が、後述する位置推定処理を実行し(ステップS116)、選択した顔領域を含む画像データにおける選択した顔領域の位置に関する情報と、選択した顔領域に対応する人物の撮影時における位置および向きと、画像処理を行う場合に使用すべき画像データの番号(選択した顔領域を含む画像データの番号)とを判定結果データ131に出力する(ステップS117)。そして、位置推定部148は、ステップS114以降の処理手順を再実行する。
こうして、一方の画像データにしか写っていない人物の情報を出力していき、ステップS114で未出力の顔領域がみつからなかったならば(ステップS115否定)、同一人判定装置100は、一連の処理手順を終了させる。
続いて、図9のステップS109の同一人判定処理の処理手順について図10を参照しながら説明する。同一人判定部142は、撮像装置11のレンズの焦点からみた、画像データ21のj番目の顔領域の右目の方向(第1の方向)と左目の方向(第2の方向)を方向算出部143に算出させる(ステップS201、ステップS202)。また、同一人判定部142は、撮像装置12のレンズの焦点からみた、画像データ22のk番目の顔領域の右目の方向(第3の方向)と左目の方向(第3の方向)を方向算出部143に算出させる(ステップS203、ステップS204)。
そして、同一人判定部142は、撮像装置11のレンズの焦点から第1の方向へ伸びる直線と撮像装置12のレンズの焦点から第3の方向へ伸びる直線との交点と、撮像装置11のレンズの焦点から第2の方向へ伸びる直線と撮像装置12のレンズの焦点から第4の方向へ伸びる直線との交点とを交点算出部144に算出させる(ステップS205、ステップS206)。ここで、いずれか一方でも交点が存在しないと判定された場合(ステップS207否定)、同一人判定部142は、j番目の顔領域に対応する人物とk番目の顔領域に対応する人物とが同一人でないと判定する(ステップS208)。
交点がいずれも算出された場合(ステップS207肯定)、同一人判定部142は、算出された2つの交点の位置を撮像装置11および撮像装置12の撮像面の位置と比較し(ステップS209)、2つの交点の位置が、それぞれの撮像装置のレンズの焦点からみて撮像面よりも後方であれば(ステップS210肯定)、二点間距離算出部145に2つの交点の距離を算出させる(ステップS211)。
そして、算出された距離が所定の範囲(例えば、6cm前後数mmの範囲)内であれば(ステップ212肯定)、同一人判定部142は、j番目の顔領域に対応する人物とk番目の顔領域に対応する人物とが同一人と判定し(ステップS213)、撮影時におけるその人物の位置と向きを位置算出部146に算出させ(ステップS214)、画像処理を行う場合に使用すべき画像データを処理対象画像選択部147に選択させる(ステップS215)。
一方、2つの交点の位置が、それぞれの撮像装置のレンズの焦点からみて撮像面よりも手前である場合(ステップS210否定)、または、算出された距離が所定の範囲外である場合(ステップ212否定)、同一人判定部142は、j番目の顔領域に対応する人物とk番目の顔領域に対応する人物とが同一人でないと判定する(ステップS208)。
続いて、図9のステップS116の位置推定処理の処理手順について図11を参照しながら説明する。位置推定部148は、選択した顔領域を含む画像データを撮影した撮像装置のレンズの焦点からみた、顔領域の右目の方向(第1の方向)と左目の方向(第2の方向)を方向算出部143に算出させる(ステップS301、ステップS302)。
そして、位置推定部148は、撮像装置のレンズの焦点から第1の方向へ伸びる直線と撮像装置のレンズの焦点から第2の方向へ伸びる直線とがなす角を頂点とする二等辺三角形の底辺の長さが所定値(例えば、6cm)となるときの他の2辺の長さを算出し(ステップS303)、算出結果に基づいて人物の位置と向きを推定する(ステップS304)。
上述したように、本実施例に係る同一人判定方法および同一人判定装置では、複数の画像データ中の人物が同一人であるか否かを幾何学的な計算によって判定することとしたので、少ない演算量で判定を行うことができる。
本実施例では、照合する顔領域の組み合わせを絞り込むことによって演算量をさらに削減する例について説明する。まず、本実施例に係る同一人判定方法を実行する同一人判定装置200の構成について図12を参照しながら説明する。図12に示すように、同一人判定装置100は、入力部110と、表示部120と、記憶部130と、制御部240とを有する。
制御部240は、同一人判定装置200を全体制御する制御部であり、顔領域抽出部141と、同一人判定部242と、方向算出部143と、交点算出部144と、二点間距離算出部145と、位置算出部146と、処理対象画像選択部147と、位置推定部248と、組み合わせ候補作成部249とを含む。
位置推定部248は、顔領域抽出部141によって画像データ21から抽出された全ての顔領域と、顔領域抽出部141によって画像データ22から抽出された全ての顔領域について、上述した位置推定処理を行って、それぞれの顔領域に対応する人物の位置と向きを推定する。なお、上述したように、推定対象の人物の顔の向きを検出する技術を組み合わせて、人物の位置の推定精度が向上するように位置推定部248を構成してもよい。
組み合わせ候補作成部249は、顔領域抽出部141によって画像データ21から抽出された顔領域と、顔領域抽出部141によって画像データ22から抽出された顔領域とを組み合わせて、同一人の顔領域の組み合わせである可能性がある組み合わせ候補を作成する。
組み合わせ候補作成部249は、組み合わせ候補を作成するに際して、撮像装置11と撮像装置12の撮影範囲の重複部分の外部に写っている顔領域を除外する。例えば、図1に示した例では、顔領域feは、対応する人物が撮像装置11の撮影範囲外に位置していると推定されるため、組み合わせ候補の作成には用いられない。
撮影範囲の重複部分は、撮像装置11と撮像装置12の撮影時における位置、向き、画角、撮像面の幅および高さから算出することができる。そして、算出された範囲と、位置推定部248によって推定された位置とを照合することにより、各顔領域について、対応する人物が撮影範囲の内部にいるか外部にいるかを判定することができる。なお、位置推定部248の推定結果の誤差を考慮して、撮影範囲の重複部分については、撮像装置11と撮像装置12の位置等から算出される範囲よりも広く設定することが好ましい。
また、組み合わせ候補作成部249は、組み合わせ候補を作成するに際して、位置推定部248によって推定された位置の距離を考慮する。具体的には、組み合わせ候補作成部249は、画像データ21から抽出された顔領域に対応する人物の推定位置と画像データ22から抽出された顔領域に対応する人物の推定位置の距離が、位置推定部248の推定結果の誤差範囲に相当する閾値を超える場合には、それらの顔領域の組み合わせを組み合わせ候補としない。位置推定部248の推定結果の誤差範囲に相当する閾値は、予め同一人判定装置200の管理者等によって設定され、例えば、50cmである。
なお、位置推定部248によって推定された位置だけでなく、推定された向きも考慮して、推定された向きの差が位置推定部248の推定結果の誤差範囲を超える場合には、組み合わせ候補を作成しないこととしてもよい。
同一人判定部242は、組み合わせ候補作成部249によって作成された組み合わせ候補ごとに上述した同一人判定処理を実行して、組み合わせ候補に含まれる顔領域に対応する人物が同一人であるか否かを判定する。そして、同一人判定部242は、同一人のものであると判定された顔領域に対応する人物の位地と向きを位置算出部146に算出させ、処理対象画像選択部147に画像処理を行う場合に使用すべき画像を選択させ、その結果を判定結果データ131へ出力する。
また、同一人判定部242は、同一人のものであると判定されなかった各顔領域について、位置推定部248によって推定された位置や向き等を判定結果データ131へ出力する。
次に、同一人判定装置200の動作について図13を参照しながら説明する。図13に示すように、まず、顔領域抽出部141が、画像データ21に含まれる顔領域を全て抽出し(ステップS401)、画像データ22に含まれる顔領域を全て抽出する(ステップS402)。
そして、位置推定部248が、画像データ21から抽出された顔領域と画像データ22から抽出された顔領域のうち、未選択のものを1つ選択する(ステップS403)。そして、選択できたならば(ステップS404肯定)、位置推定部248が、図11に示した位置推定処理を実行して、選択した顔領域に対応する人物の撮影時における位置および向きを推定する(ステップS405)。そして、位置推定部248は、ステップS403以降の処理手順を再実行する。
こうして、全ての顔領域に対応する人物の位置および向きを推定し終えて、未選択の顔領域がなくなったならば(ステップS404否定)、組み合わせ候補作成部249が、位置推定部248によって推定された位置を考慮して顔領域の組み合わせ候補を作成する(ステップS406)。そして、同一人判定部242は、組み合わせ候補を特定するための変数jを1に初期設定する(ステップS407)。
続いて、同一人判定部242は、j番目の組み合わせ候補を選択する(ステップS408)。j番目の組み合わせ候補を選択でき(ステップS409肯定)、かつ、j番目の組み合わせ候補に含まれるいずれの顔領域も判定結果データ131に出力されていない場合(ステップS410否定)、同一人判定部242は、図10に示した同一人判定処理を実行する(ステップS411)。
同一人判定処理によって、j番目の組み合わせ候補に含まれる各顔領域に対応する人物が同一人と判定された場合(ステップS412肯定)、同一人判定部242は、j番目の組み合わせ候補に含まれる各顔領域の位置に関する情報と、同一人と判定された人物の撮影時における位置および向きと、画像処理を行う場合に使用すべき画像データの番号とを判定結果データ131に出力する(ステップS413)。そして、同一人判定部242は、変数jに1を加算し、ステップS408以降の処理手順を再実行する(ステップS414)。
同一人判定処理によって、j番目の組み合わせ候補に含まれる各顔領域に対応する人物が同一人と判定されなかった場合(ステップS412否定)、同一人判定部242は、変数jに1を加算し、ステップS408以降の処理手順を再実行する(ステップS414)。
j番目の組み合わせ候補に含まれる顔領域の少なくとも1つが判定結果データ131に出力していた場合(ステップS410肯定)、同一人判定部242は、同一人判定処理を実行することなく、変数jに1を加算し、ステップS408以降の処理手順を再実行する(ステップS414)。
こうして、各組み合わせ候補に含まれる顔領域を照合していき、ステップS408でj番目の組み合わせ候補を選択できなくなった場合、すなわち、全ての組み合わせ候補に含まれる顔領域について照合が完了した場合(ステップS409否定)、同一人判定部242が、画像データ21から抽出された顔領域と画像データ22から抽出された顔領域のうち、判定結果データ131へ出力されていないものを1つ選択する(ステップS415)。
そして、選択できたならば(ステップS416肯定)、同一人判定部242が、選択した顔領域を含む画像データにおける選択した顔領域の位置に関する情報と、その顔領域に対応する人物の撮影時における位置および向きと、画像処理を行う場合に使用すべき画像データの番号(選択した顔領域を含む画像データの番号)とを判定結果データ131に出力する(ステップS417)。そして、同一人判定部242は、ステップS415以降の処理手順を再実行する。
こうして、一方の画像データにしか写っていない人物の情報を出力していき、ステップS415で未出力の顔領域がみつからなかったならば(ステップS416否定)、同一人判定装置200は、一連の処理手順を終了させる。
上述してきたように、本実施例では、人物の位置の推定結果に基づいて照合する顔領域の組み合わせを絞り込むこととしたので、演算量をさらに削減することができる。なお、照合する顔領域の組み合わせを絞り込むには、人物の位置の推定結果以外の情報を併用または単独で用いてもよい。例えば、それぞれの顔領域について、顔領域に含まれる画素の輝度の平均値をRGBの各色ごとに算出し、輝度の平均値の差異が所定以上である場合には、組み合わせ候補を作成しないこととしてもよい。
上述した同一人判定装置100および同一人判定装置200の構成は、要旨を逸脱しない範囲で種々に変更することができる。例えば、同一人判定装置100の制御部140や同一人判定装置200の制御部240の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、同一人判定装置100や同一人判定装置200と同等の機能を実現することもできる。以下に、同一人判定装置100の制御部140の機能をソフトウェアとして実装した同一人判定プログラム1071を実行するコンピュータの一例を示す。
図14は、同一人判定プログラム1071を実行するコンピュータ1000を示す機能ブロック図である。このコンピュータ1000は、各種演算処理を実行するCPU(Central Processing Unit)1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置1050と、各種情報を一時記憶するRAM(Random Access Memory)1060と、ハードディスク装置1070とをバス1080で接続して構成される。
そして、ハードディスク装置1070には、図5に示した制御部140と同様の機能を有する同一人判定プログラム1071と、図5に示した記憶部130に記憶される各種データに対応する同一人判定用データ1072とが記憶される。なお、同一人判定用データ1072を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
そして、CPU1010が同一人判定プログラム1071をハードディスク装置1070から読み出してRAM1060に展開することにより、同一人判定プログラム1071は、同一人判定プロセス1061として機能するようになる。そして、同一人判定プロセス1061は、同一人判定用データ1072から読み出した情報等を適宜RAM1060上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
なお、上記の同一人判定プログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。
また、上述した同一人判定装置100および同一人判定装置200の構成を各種のシステムと組み合わせて利用することもできる。以下に、同一人判定装置100や同一人判定装置200をデジタルサイネージシステムと組み合わせて利用する例について説明する。デジタルサイネージシステムとは、表示パネルやタッチパネルからなる電子看板上に広告等の各種表示コンテンツを表示するシステムである。
同一人判定装置100や同一人判定装置200を利用することにより、電子看板の前にいる人物に関して画像処理に好適な画像データを選択することが可能になる。このため、選択された画像データに公知の画像解析技術を適用することにより、電子看板の前にいる人物の年齢や性別を高い精度で識別し、その人物の年齢や性別に合った表示コンテンツを電子看板に表示することが可能になる。
また、同一人判定装置100や同一人判定装置200を利用することにより、電子看板の前にいる人物の顔の向きを取得することが可能になる。そして、電子看板の前にいる人物の顔の向きの変化を追跡することにより、その人物が電子看板の方を向いたタイミングを識別して、その人物が電子看板の方を向いたタイミングで、効果音を大きくしたり、表示コンテンツを初めから表示し直したりすることが可能になる。このように人物が電子看板の方を向いたタイミングでコンテンツの再生の態様を変化させることにより、コンテンツがその人物の関心を惹き易くなる。
また、同一人判定装置100や同一人判定装置200を利用することにより、電子看板の前にいる人物の顔の位置と向きを取得することが可能になる。このため、取得された顔の位置と向きに基づいて、その人物の視線の先が電子看板上のどの位置にあるかを特定し、視線の先があると特定した位置に最も伝達したいメッセージ等が表示されるように、コンテンツ自体の表示位置やコンテンツにオーバーレイ表示されるメッセージ等の表示位置を変更することができる。
また、デジタルサイネージシステムでは、タッチパネルからなる電子看板の前にいる人物からの入力を受け付けることができるように、タッチパネル上に操作ボタン等を表示することがある。そのようなデジタルサイネージシステムでは、同一人判定装置100や同一人判定装置200を利用して、電子看板の前にいる人物が操作し易い位置に操作ボタン等を表示することができる。例えば、人物の顔の位置を取得することにより、その人物の立ち位置に最も近い位置に操作ボタン等を表示することができる。また、人物の顔の位置と向きを取得して視線の先が電子看板上のどの位置にあるかを特定することにより、その人物の視線の先に操作ボタン等を表示することができる。また、人物の顔の位置を三次元座標上で取得することにより、その人物が操作し易いように操作ボタン等を表示する位置の高さを変更ことができる(例えば、胸より上で頭よりも下の高さへ変更する)。