JP2011134045A - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP2011134045A
JP2011134045A JP2009291960A JP2009291960A JP2011134045A JP 2011134045 A JP2011134045 A JP 2011134045A JP 2009291960 A JP2009291960 A JP 2009291960A JP 2009291960 A JP2009291960 A JP 2009291960A JP 2011134045 A JP2011134045 A JP 2011134045A
Authority
JP
Japan
Prior art keywords
face
detection
image
window
face image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009291960A
Other languages
English (en)
Inventor
Takanori Uno
孝紀 宇野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2009291960A priority Critical patent/JP2011134045A/ja
Priority to US12/978,235 priority patent/US8428361B2/en
Publication of JP2011134045A publication Critical patent/JP2011134045A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/768Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

【課題】同じ顔について複数の向きが検出された場合にいずれの向きを正しい向きとするかを適切に決定することが困難であった。
【解決手段】入力画像内の画像情報に基づいて所定方向を向く顔画像の有無を判定することにより所定方向を向く顔画像を検出する処理を、複数の顔の向きを対象として実行する検出部と、上記検出部によって複数の向きの顔画像が重複して検出された向き重複領域が生じた場合に、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出し、算出した各信頼度の比較結果に応じて、向き重複領域に存在する顔画像の向きを決定する決定部と、を備える画像処理装置とした。
【選択図】図2

Description

本発明は、画像から顔を検出可能な画像処理装置に関する。
画像内で人の顔を検出するものとして、複数のサンプル画像データに基づいて学習を行なった顔検出部により、画像中に設定した検出窓内の画像領域について顔領域であるか否か判定して検出する技術が知られている(特許文献1参照。)。
撮影された画像内においては、様々な向きの顔が存在し得る。例えば、画像には、正面あるいは略正面を向いた顔(正面顔)の他、横方向等にいくらか振れている顔(振り顔)や、画像に対して顔の上下方向が傾いた顔(傾き顔)等が写っている場合がある。このような状況において様々な方向を向いた顔を検出するには、主に二通りの手法が考えられる。一つ目の手法は、あらゆる向きの顔が検出可能となるように膨大なサンプル画像データに基づいて学習を行なった一つの顔検出器を用いて、画像内から顔(顔およびその向き)を検出する手法である。二つ目の手法は、正面顔検出のために専用に学習された顔検出器(正面顔検出器)や、振り顔検出のために専用に学習された検出器(振り顔検出器)等を用意し、画像に対して正面顔検出器や振り顔検出器を個別に適用する手法である。
特開2009‐32018号公報
上記一つ目の手法については、あらゆる向きの顔についてその向きを正確に検出可能な一つの顔検出器を生成することが困難であるため、検出精度の低さや、検出速度の遅さ等が問題となっていた。そこで、当該一つ目の手法の欠点を解消するために上記二つ目の手法を採用する。しかしながら、上記二つ目の手法においては、一つの顔について複数の検出結果が生じ得る点が問題であった。つまり、画像に写っているある人物の顔について、正面顔検出器を用いたときに顔が検出され(正面顔が検出され)且つ振り顔検出器を用いたときに顔が検出された(振り顔が検出された)場合等のように、複数の顔の向きが検出された場合、いずれの検出結果を採用すべきかといった問題があった。
本発明は上記課題を解決するためになされたものであり、同じ顔について複数の向きが検出された場合にいずれの向きを正しい向きとするかを適切に決定することができ、高精度かつ高速な顔検出に貢献する画像処理装置を提供する。
本発明の態様の一つは、画像処理装置であって、入力画像内の画像情報に基づいて所定方向を向く顔画像の有無を判定することにより所定方向を向く顔画像を検出する処理を、複数の顔の向きを対象として実行する検出部と、上記検出部によって複数の向きの顔画像が重複して検出された向き重複領域が生じた場合に、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出し、算出した各信頼度の比較結果に応じて、向き重複領域に存在する顔画像の向きを決定する決定部と、を備える構成としてある。
本発明によれば、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出し、各信頼度を比較し、信頼度が高い方の向きを向き重複領域に存在する顔画像の向きとして決定する。そのため、同じ顔について複数の向きが検出された場合にいずれの向きを正しい向きとするかを適切に決定することができる。またその結果、従来よりも高精度かつ高速に、顔の向きが決定される。
上記検出部は、上記対象とする上記複数の顔の向き毎に、入力画像内に検出窓を設定して検出窓内の画像情報に基づいて対象の向きの顔画像の有無を判定する処理を検出窓を変更して複数回実行し、上記決定部は、上記向き重複領域において検出された顔画像の向き毎に、向き重複領域において顔画像が検出された回数に基づく信頼度を算出するとしてもよい。当該構成によれば、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を、向き毎の検出回数という数値に基づいて適切に算出することができる。
なお上記決定部は、上記向き重複領域において検出された顔画像の向き毎の向き重複領域における顔画像の検出回数を、顔画像の向きに対応する所定の補正係数でそれぞれ補正することにより、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出するとしてもよい。当該構成によれば、上記向き毎の検出回数の単純な比較では向き毎の検出結果間の優位性を比較できない場合に、比較に用いてより適切な信頼度を算出することができる。
上記検出部は、上記対象とする複数の顔の向きのうち一の顔の向きについて顔画像の有無を判定する処理を検出窓を変更して複数回実行する過程で、顔画像を検出できた回数が所定のしきい値を超えた領域については、以後、当該一の顔の向きおよび他の顔の向きにかかる顔画像の検出のために検出窓を設定する対象から除外するとしてもよい。当該構成によれば、上記一の顔の向きにかかる顔画像が入力画像のある領域に間違いなく存在すると言える程度に複数回検出できたときに、その領域に関してはそれ以上の顔画像の検出処理を実行しないために、画像処理装置の処理負担を軽減することができる。
上記検出部は、略正面を向く顔画像と、正面向きに対して振りの有る顔画像とをそれぞれ検出可能であるとしてもよい。さらに上記検出部は、入力画像に対して傾いていない向きの顔画像と、入力画像に対して傾いた向きの顔画像とをそれぞれ検出可能であるとしてもよい。かかる構成によれば、一つの顔画像について、正面顔として検出し、かつ振り顔として検出した場合や、正面顔として検出し且つ傾き顔として検出した場合に、それぞれの向きの検出結果にかかる信頼度に応じて、適切に顔画像の向きを決定することができる。
上記決定部は、上記入力画像が静止画であるか動画であるかに応じて、顔画像の向きと上記補正係数との対応関係を変更するとしてもよい。当該構成によれば、例えば、入力画像が静止画であるときには、検出された顔画像について正面顔であると決定され易いようにしたり、入力画像が動画であるときには、検出された顔画像について振り顔であると決定され易いようにしたりすることができる。
上記決定部は、上記算出した各信頼度が等しい場合は、顔の向き間の所定の優先順位に基づいて向き重複領域に存在する顔画像の向きを決定するとしてもよい。当該構成によれば、上記算出した各信頼度が等しい場合であっても、向き重複領域に存在する顔画像の向きを最終的に適切に決定することができる。顔の向き間の優先順位は、例えば、入力画像が静止画か動画かによって異ならせてもよい。
本発明の技術的思想は、画像処理装置以外によっても実現可能である。例えば、上述した画像処理装置の各部が実行する処理工程を有する方法の発明や、上述した画像処理装置の各部が実行する機能を所定のハードウェア(画像処理装置が内蔵するコンピューター等)に実行させるプログラムの発明をも把握可能である。また、画像処理装置は、単一の装置であってもよいし、複数の装置からなるシステムであってもよい。
画像処理装置の一例の概略構成を示すブロック図である。 顔画像検出・決定処理を示すフローチャートである。 画像データの一例を示す図である。 正面顔検出処理の詳細を示すフローチャートである。 画像データにおける検出窓の設定を説明するための図である。 正面顔検出器の一例を示す図である。 検出窓内の画像に矩形フィルターを適用する様子を例示する図である。 正面顔検出処理の結果記録された検出成功窓を例示する図である。 振り顔検出処理の詳細を示すフローチャートである。 振り顔検出処理の結果記録された検出成功窓を例示する図である。 時計回り方向に回転した画像データに検出窓を設定する様子を例示する図である。 反時計回り方向に回転した画像データに検出窓を設定する様子を例示する図である。 各向きについての顔検出処理を経て記録された検出成功窓を例示する図である。 二つの検出成功窓のいずれかを選択する処理を示すフローチャートである。 顔画像検出・決定処理の結果、記録された検出成功窓を例示する図である。 変形例にかかるシステムを簡易的に示すブロック図である、 変形例にかかる顔画像検出・決定処理の一部を示すフローチャートである。 変形例にかかる二つの検出成功窓のいずれかを選択する処理の一部を示すフローチャートである。
1.画像処理装置の概略構成
図1は、本実施形態にかかる画像処理装置の一例に該当するプリンター10の構成を概略的に示している。プリンター10は、記録メディア(例えば、メモリーカードMC等)から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したプリンターである。プリンター10は、プリンター10の各部を制御するCPU11と、例えばROMやRAMによって構成された内部メモリー12と、ボタンやタッチパネルにより構成された操作部14と、液晶ディスプレーにより構成された表示部15と、プリンターエンジン16と、カードインターフェイス(カードI/F)17と、パーソナルコンピューター(PC)やサーバーやデジタルスチルカメラやスキャナー等の外部機器と接続するためのI/F部13とを備えている。プリンター10の各構成要素は、バスを介して互いに接続されている。
プリンターエンジン16は、印刷データに基づき印刷を行う印刷機構である。カードI/F17は、カードスロット172に挿入されたメモリーカードMCとの間でデータのやり取りを行うためのI/Fである。メモリーカードMCには画像データが格納されており、プリンター10は、カードI/F17を介してメモリーカードMCに格納された画像データを入力することができる。画像データ提供のための記録メディアとしてはメモリーカードMC以外にも種々の媒体を用いることができる。むろんプリンター10は、記録メディア以外にも、I/F部13を介して接続した上記外部機器から画像データを入力することも可能である。プリンター10は、I/F部13を介して接続したPCやサーバー等から印刷データを入力することもできる。
内部メモリー12には、顔画像検出部20と、顔画像決定部30と、表示処理部40と、印刷処理部50とが格納されている。顔画像検出部20や、顔画像決定部30は、所定のオペレーティングシステムの下で、後述する顔画像検出・決定処理を実行するためのコンピュータープログラムである。表示処理部40は、表示部15を制御して、表示部15に処理メニューやメッセージを表示させるディスプレードライバーである。印刷処理部50は、画像データから印刷データを生成し、プリンターエンジン16を制御して、印刷データに基づく画像の印刷を実行するためのコンピュータープログラムである。CPU11は、内部メモリー12から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
顔画像検出部20は、プログラムモジュールとして、検出窓設定部21と、正面顔検出部(正面顔検出器)22と、振り顔検出部(振り顔検出器)23と、画像回転部24と、重複窓統合部25とを含んでいる。これら各部の機能についても後述する。顔画像検出部20は、入力画像内の画像情報に基づいて所定方向を向く顔画像の有無を判定することにより所定方向を向く顔画像を検出する処理を、複数の顔の向きを対象として実行する検出部に該当する。また、顔画像決定部30は、検出部によって複数の向きの顔画像が重複して検出された向き重複領域が生じた場合に、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出し、算出した各信頼度の比較結果に応じて、向き重複領域に存在する顔画像の向きを決定する決定部に該当する。プリンター10は、コンシューマー向けの印刷装置であってもよいし、DPE向けの業務用印刷装置(いわゆるミニラボ機)であってもよい。また、プリンター10は、印刷機能以外にも、コピー機能やスキャン機能など多種の機能を備えたいわゆる複合機であってもよい。
2.顔画像検出・決定処理
図2は、プリンター10が実行する顔画像検出・決定処理をフローチャートにより示している。ステップS(以下、ステップの表記は省略。)100では、顔画像検出部20が、画像処理の対象となる画像(入力画像)を表した画像データDを、メモリーカードMC等、所定の記録メディアから取得する。ここで言う入力画像は静止画である。むろん、顔画像検出部20は、プリンター10がハードディスクドライブ(HDD)を有していれば、当該HDDに保存されている画像データDを取得可能であるし、上述したようにI/F部13を介して接続した上記外部機器から画像データDを取得可能である。画像データDは、複数の画素からなるビットマップデータであり、例えば各画素は、RGB各チャネルの階調(例えば、0〜255の256階調)の組み合わせで表現されている。
図3は、画像データDの一例を示している。当該一例にかかる画像データDには、人の顔P1,P2,P3が写っている。ここで、顔P1は、略正面を向いた正面顔であるが、顔の上下方向が画像データDの上下方向に対して傾いている。顔P2は、傾きの無い正面顔である。顔P3は、傾きは無いが、顔全体が画像データDにおける左側(画像に向かって左側)に振れている振り顔(横顔)である。
S200では、顔画像検出部20は、画像データDを対象として正面顔検出処理を実行する。なお、上記入力したままの画像サイズの画像データDを対象として、S200以下の処理を実行する場合にはプリンター10の処理負担が過大となることもある。そのため、顔画像検出部20が画像データDについて画素数を減らすなどして画像サイズを縮小し、この縮小後の画像データを対象としてS200以下の処理がなされるとしてもよい。本実施形態では、縮小後の画像データについても便宜上、画像データDと表現する。
図4は、S200(正面顔検出処理)の詳細をフローチャートにより示している。
S210では、検出窓設定部21が、画像データDにおいて検出窓SWを一つ設定する。検出窓設定部21は一例として、以下のように検出窓SWを設定する。
図5は、画像データDにおいて検出窓SWを設定する様子を示している。検出窓設定部21は、一回目のS210では、画像内の先頭位置(例えば、画像の左上の角位置)に複数の画素を含む所定大きさの矩形状の検出窓SW(2点鎖線)を設定する。検出窓設定部21は、二回目以降のS210の度に、それまで検出窓SWを設定していた位置から検出窓SWを画像の左右方向およびまたは上下方向に所定距離(所定画素数分)移動させ、移動先の位置において検出窓SWを新たに一つ設定する。検出窓設定部21は、検出窓SWの大きさを維持した状態で画像データDの最終位置(例えば、画像の右下の角位置)まで検出窓SWを移動させながら繰り返し検出窓SWを設定したら、先頭位置に戻って検出窓SWを設定する。
検出窓設定部21は、検出窓SWを先頭位置に戻した場合には、それまでよりも矩形の大きさを縮小した検出窓SWを設定する。その後、検出窓設定部21は上記と同様に、検出窓SWの大きさを維持した状態で画像データDの最終位置まで検出窓SWを移動させつつ、各位置において検出窓SW設定する。検出窓設定部21は、検出窓SWの大きさを予め決められた回数だけ段階的に縮小しながら、このような検出窓SWの移動と設定を繰り返す(検出窓SWの変更を繰り返す)。このようにS210において検出窓SWが一つ設定される度に、S220以降の処理が行なわれる。
S220では、正面顔検出部22が、直近のS210で設定された検出窓SW内の画像情報に基づいて正面顔の有無を判定する。
図6は、正面顔検出部22が上記判定に用いる正面顔検出器22aを示す図である。正面顔検出器22aは、直列的に接続された複数(N個)の判定ステージSt1〜StNを備える。各判定ステージStでは、一以上の矩形フィルターFを検出窓SW内の画像に適用した結果に基づいて、正面顔が存在し得る旨を示す値「Accept」または正面顔が存在しない旨を示す「Reject」のどちらかを判定結果として出力する。最初の判定ステージSt1において「Accept」が出力された場合にのみ、次の判定ステージSt2による判定が行われる。判定ステージSt2以降においても「Accept」を出力した場合にのみ次の判定ステージStに進み、最後の判定ステージStNで「Accept」が出力された場合に、正面顔検出器22aは、検出窓SW内に正面顔が存在する(正面顔の検出成功)と判定する。一方、いずれかの判定ステージStにおいて「Reject」を出力した時点で、正面顔検出器22aは、検出窓SW内に正面顔が存在しない(正面顔の検出不成功)と判定する。
図7は、判定ステージSt1において検出窓SW内の画像に予め用意された矩形フィルターF11を適用する様子を例示している。ここでは検出窓SW内の画像を画像データWDと示す。図7では、画像データWDに矩形フィルターF11(矩形フィルターFの一種)が重畳された様子を示している。画像データWD、矩形フィルターF11はともに正方形で同一サイズであるとする。矩形フィルターF11内には、画像の特徴量を抽出するための領域A11a,A11bが設定されている。図7の例では、矩形フィルターF11を重畳した画像データWDが仮に正面顔を含んでいれば当該顔の鼻が存在すると推定される範囲に領域A11aが設定されており、かつ、矩形フィルターF11を重畳した画像データWDが仮に正面顔を含んでいれば当該顔の左右の頬が存在すると推定される範囲に領域A11bが設定されている。正面顔検出器22aは、画像データWDに矩形フィルターF11を重畳したときに、領域A11a内の画素の輝度の総和Ysum1を算出するとともに、領域A11b内の画素の輝度の総和Ysum2を算出する。そして、これら両総和の差分E(絶対値)が所定のしきい値Th11以上であれば、正面顔らしさが高いとして、矩形フィルターF11の適用結果(フィルター判定値)として値U11を出力する。逆に、当該差分Eがしきい値Th11より小さい場合には、正面顔らしさが低いとして、フィルター判定値として値V11を出力する。U11>V11である。しきい値Th11、値U11,V11はいずれも、矩形フィルターF11に対応して予め設定されている所定値である。
判定ステージSt1においては、矩形フィルターF11以外にも複数の予め用意された矩形フィルターFを用いて、上記矩形フィルターF11を適用したときと同様に、各矩形フィルターFを画像データWDに適用することにより、各矩形フィルターFによるフィルター判定値をそれぞれ取得する。各矩形フィルターF間においては、画像の特徴量を抽出するための領域(上記領域A11a,A11bに対応するもの)は互いに位置や大きさが異なり、また上記差分E等との比較に用いる上記しきい値や、上記出力するフィルター判定値も同じとは限らない。そして、判定ステージSt1では、各矩形フィルターFを適用した結果得られた各フィルター判定値の総和を計算し、フィルター判定値の総和が判定ステージSt1に対して予め設定されている所定のしきい値以上であれば「Accept」を出力し、フィルター判定値の総和が判定ステージSt1に対して予め設定されているしきい値より小さければ「Reject」を出力する。以降の判定ステージSt2〜StNに進んだ場合も同様に、ステージ毎に用意された複数の矩形フィルターFを用い、フィルター判定値の総和についてのしきい値判定を行うことで、「Accept」又は「Reject」を出力する。むろん、使用する矩形フィルターFの数や中身や、フィルター判定値の総和と比較するためのしきい値も、判定ステージ毎に異なるとしてもよい。つまり本実施形態の画像処理装置では、正面を向く顔画像や略正面を向く顔画像と、それ以外の顔画像と、からなる複数のサンプル画像データに基づいて学習することにより各矩形フィルターFや各しきい値やフィルター判定値などを最適化した上記正面顔検出器22aが、予め用意されている。
S230では、正面顔検出部22は、直近のS220における判定結果に応じて処理を分岐する。つまり、直近のS220で正面顔の検出成功となった場合にはS240に進み、一方、直近のS220で正面顔の検出不成功となった場合にはS250に進む。
S240では、正面顔検出部22は、直近のS210で設定された検出窓SW(顔画像の検出に成功した検出窓SW)に関する情報を、内部メモリー12の所定領域に記録する。ここで記録する情報とは、検出窓SWの位置(例えば、画像データD内における検出窓SWの中心座標)、検出窓SWの矩形のサイズ、検出窓SW内に存在する(存在するはずの)顔画像の向きおよび矩形フィルターFの回転角度、等である。以下では、顔画像の検出に成功した検出窓SWを、検出成功窓SSWとも呼ぶ。
本願で「顔(顔画像)の向き」といった場合には、顔の「振り」および顔の「傾き」を含む意味である。顔の「振り」には、左右方向への振り(図3の顔P3参照)や上下方向への振りがあり、正面向き(振り無し)を基準として顔が上下左右のいずれかに振れている状況を言う。顔の「傾き」とは、顔の上下方向の、画像データDの上下方向に対する傾き(図3の顔P1参照)または画像データDの左右方向に対する傾きを言う。当該S200(正面顔検出処理)においては、顔画像は傾きの無い正面顔として検出されるため、「顔画像の向き」としては、顔の振り無しかつ顔の傾き無し、という情報が記録される。
「矩形フィルターFの回転角度」とは、S220で正面顔検出器22aが検出窓SWの画像に矩形フィルターFを重畳させる際に矩形フィルターFを回転させた場合の回転角であり、0°(回転せず)、90°、180°、270°のいずれかである。一回のS220の最中では矩形フィルターFの回転角は共通となる。前述のS220についての説明では、矩形フィルターFは回転させていないため、(S230を挟んで)直後のS240では、矩形フィルターFの回転角度は「0°」として記録される。当該S200(正面顔検出処理)では、一回設定された検出窓SWに対してS220〜S240の処理を矩形フィルターFの回転角の種類分(4回)繰り返す(S250参照)。つまり、二回目のS220では各矩形フィルターFを上記0°を基準として90°回転させた上で検出窓SWに適用し、三回目のS220では各矩形フィルターFを上記0°を基準として180°回転させた上で検出窓SWに適用し、四回目のS220では各矩形フィルターFを上記0°を基準として270°回転させた上で検出窓SWに適用する。このようにすれば、検出窓SW内の顔の上方向が検出窓SWの上下左右のどちらを指していても、検出窓SW内の顔を検出することができる。
S260では、検出窓設定部21が、図5を用いて説明した検出窓SWの設定方法の思想の下、検出窓SWを移動させ更にその大きさを縮小したりして未だ検出窓SWを設定する余地があれば、S210に戻り、新たに検出窓SWを画像データD内に一つ設定する。一方、検出窓SWの縮小を上記予め決められた回数分重ね、可能な検出窓SWの設定を全て終えた場合には、S270に進む。
S270では、重複窓統合部25が、これまでのS210〜S260の処理により画像データD上で得られた検出成功窓SSWが互いに重複する場合に、重複する検出成功窓SSWを統合する。重複窓統合部25は、上記S240で内部メモリー12に記録された情報(検出成功窓SSWの位置およびサイズ)を参照することにより、画像データD上で重複する検出成功窓SSWを特定し、統合する。
図8は、画像データDを対象としてS210〜S260の処理を行なった場合に、正面顔の検出に成功したものとして記録された複数の検出成功窓SSW(検出成功窓SSW1〜SSW7)を例示している。ただし図8では、画像データDの一部範囲のみを示している。上述したように、検出窓SWは画像データD上にて位置を数画素分ずらしながら、またサイズを変更しながら繰り返し設定される。そのため、図8に示すように、傾きの無い正面顔である顔P2近傍では位置やサイズが多少異なる複数の検出窓SWによって正面顔検出が成功している。重複窓統合部25は、複数の検出成功窓SSWの中からそれらの重なり度合いに応じて、統合すべき複数の検出成功窓SSWを特定する。例えば、重複窓統合部25は、一つの検出成功窓SSWを注目窓とした場合、この注目窓内の所定パーセント(例えば70パーセント程度)以上の面積と重なっている他の検出成功窓SSWがある場合に、当該注目窓と他の検出成功窓SSWとを統合すべきものとして特定する。
重複窓統合部25は、画像データD上で得られた検出成功窓SSW全てについて順番に上記のように注目窓とすることで、統合すべき検出成功窓SSWの集合を特定する。図8の例では、検出成功窓SSW1〜SSW6について、これらは多くの面積が重なり合っているため統合すべき集合として特定される。検出成功窓SSW7は、検出成功窓SSW1と一部重なっているが、重なっている面積が小さいため、上記統合すべき集合の中に入らない。検出成功窓SSW7は、実際には傾きの無い正面顔が存在していないにもかかわらず検出成功窓SSWとして記録されてしまった(傾きの有る正面顔(顔P1)等を傾きの無い正面顔として検出した)ものである。言い換えると、画像データD上で検出成功窓SSWが多く重なっている領域ほど、実際にそのとき検出対象とした顔(ここでは傾きの無い正面顔)が存在している可能性が高い。
重複窓統合部25は、上記統合すべきものとして特定した検出成功窓SSWの集合(検出成功窓SSW1〜SSW6)について、これらを統合して新たな検出成功窓SSWを生成する。例えば、当該集合を構成する各検出成功窓SSW1〜SSW6の位置およびサイズを平均化し、この平均化した位置およびサイズを有する矩形を、新たな検出成功窓SSW8とする。図8では、この検出成功窓SSW8を鎖線で例示している。重複窓統合部25は、検出成功窓SSW8に関する情報(位置、サイズ、顔画像の向きおよび矩形フィルターFの回転角度)を内部メモリー12に記録するとともに、検出成功窓SSW8の統合元となった上記集合にかかる各検出成功窓SSW1〜SSW6に関する情報を、内部メモリー12から消去する。検出成功窓SSW8に関する情報のうち、顔画像の向きおよび矩形フィルターFの回転角度は、統合元となった検出成功窓SSW1〜SSW6の顔画像の向き(顔の振り無しかつ顔の傾き無し)および矩形フィルターFの回転角度(0°)と同じである。なお、統合元となった検出成功窓SSW1〜SSW6間においては、矩形フィルターFの回転角度は共通であると考えて差し支えない。
S280では、顔画像検出部20は、S210〜S270の処理の結果、現在、内部メモリー12に記録されている検出窓SW(検出成功窓SSW)に関する情報に、検出(成功)回数Vfeを追加する。ここでは、S270で統合の対象とされなかった検出成功窓SSW(図8の例では、検出成功窓SSW7)に対しては、検出回数Vfe=1という値がそれぞれ与えられる。一方、S270で統合により生成された検出成功窓SSWに対しては、統合元となった検出成功窓SSWの数に応じた検出回数Vfeが与えられる(検出成功窓SSW1〜SSW6を統合して生成された検出成功窓SSW8については、検出回数Vfe=6となる)。検出回数Vfeを付与する処理は、必ずしもS280のタイミングで実行する必要はなく、S240およびS270のタイミングで行なうとしてもよい。S210〜S260の処理の結果、重複し合う検出成功窓SSWが無い場合は、S270は実行されず、またS210〜S260の処理の結果、検出成功窓SSWが一切無ければ、S270および上記検出回数の付与は実行されない(以下同様)。以上で、S200(正面顔検出処理)が終了する。
S300(図2)では、顔画像検出部20は、画像データDを対象として振り顔検出処理を実行する。
図9は、S300(振り顔検出処理)の詳細をフローチャートにより示している。ここで言う振り顔検出処理は、検出対象となる顔画像が横方向(左右)の振り顔である点でS200と異なるが、基本的な処理の流れはS200の詳細(図4)と同様である。S310はS210同じである。S320では、振り顔検出部23が、直近のS310で設定された検出窓SW内の画像情報に基づいて横方向の振り顔の有無を判定する。つまり本実施形態の画像処理装置では、上記正面顔検出器22aが予め用意されているのと同様に、横方向に振りの有る顔画像と、それ以外の顔画像と、からなる複数のサンプル画像データに基づいて学習することにより各矩形フィルターFや各しきい値やフィルター判定値などを最適化した各判定ステージからなる振り顔検出器が、予め用意されている。そして、振り顔検出部23は、振り顔検出器を用いることにより、検出窓SW内における横方向の振り顔の有り(振り顔の検出成功)/無し(振り顔の検出不成功)を判定する。
S330では、S230と同様に、振り顔検出部23は直近のS320における判定結果に応じて処理を分岐し、振り顔の検出成功となった場合にはS340に進み、一方、振り顔の検出不成功となった場合にはS350に進む。S340では、S240と同様に、振り顔検出部23は、直近のS310で設定された検出窓SW(顔画像の検出に成功した検出成功窓SSW)に関する情報(位置、サイズ、顔画像の向きおよび矩形フィルターFの回転角度)を内部メモリー12の所定領域に記録する。当該S300(振り顔検出処理)においては、顔画像は傾きの無い横方向の振り顔として検出されるため、「顔画像の向き」としては、顔の振り有り(横方向の振り)かつ顔の傾き無し、という情報を記録する。S350,S360は、S250,S260と同じである。S370では、S270と同様に、重複窓統合部25が、これまでのS310〜S360の処理により画像データD上で得られた検出成功窓SSWが互いに重複する場合に、重複する検出成功窓SSWを統合する。
図10は、画像データDを対象としてS310〜S360の処理を行なった場合に、横方向の振り顔の検出に成功したものとして記録された複数の検出成功窓SSW(検出成功窓SSW9〜SSW16)を例示している。ただし図10では、画像データDの一部範囲のみを示している。図10の例では、顔P1の位置に検出成功窓SSW9が在り、顔P2の略半分を囲う位置に検出成功窓SSW10,SSW11が重複しており、顔P3の位置で検出成功窓SSW12〜SSW16が重複している。よって重複窓統合部25は、検出成功窓SSW10,SSW11についてこれらを一つの新たな検出成功窓SSW17に統合し、検出成功窓SSW12〜SSW16についてこれらを一つの新たな検出成功窓SSW18に統合する。検出成功窓SSW9〜SSW11は、実際には傾きの無い振り顔が存在していないにもかかわらず検出成功窓SSWとして記録されてしまった(傾きの有る正面顔(顔P1)や、傾きの無い正面顔(顔P2)の顔半分を、傾きの無い振り顔として検出した)ものである。
むろん当該S370においても、S270と同様に重複窓統合部25は、統合により生成した検出成功窓SSW17,SSW18それぞれについて、情報(位置、サイズ、顔画像の向きおよび矩形フィルターFの回転角度)を内部メモリー12に記録する。また、検出成功窓SSW17の統合元となった検出成功窓SSW10,SSW11に関する情報および検出成功窓SSW18の統合元となった検出成功窓SSW12〜SSW16に関する情報は、内部メモリー12から消去する。検出成功窓SSW17,18に関する情報のうち、顔画像の向きおよび矩形フィルターFの回転角度は、統合元となった検出成功窓SSW10,SSW11、検出成功窓SSW12〜SSW16の顔画像の向き(顔の振り有り(横方向の振り)かつ顔の傾き無し)および矩形フィルターFの回転角度(0°)と同じである。
S380では、S280と同様に顔画像検出部20は、S310〜S370の処理の結果、現在、内部メモリー12に記録されている検出成功窓SSWに関する情報に、検出(成功)回数Vpeを追加する。ここでは、S370で統合の対象とされなかった検出成功窓SSW(図10の例では、検出成功窓SSW9)に対しては、検出回数Vpe=1という値が与えられる。一方、S370で統合により生成された検出成功窓SSW17に対しては、統合元となった検出成功窓SSW10,SSW11の数に応じた検出回数Vpe=2が与えられ、同じく統合により生成された検出成功窓SSW18に対しては、統合元となった検出成功窓SSW12〜SSW16の数に応じた検出回数Vpe=5が与えられる。以上で、S300(振り顔検出処理)が終了する。
S400(図2)では、画像回転部24が、画像データD全体を所定角度回転させる。
S500では、顔画像検出部20が、S400で回転させられた後の画像データDを対象として正面顔検出処理を実行する。S500で実行する正面顔検出処理は、S200の正面顔検出処理(図4参照)と同じである。ただし、画像データDに設定される検出窓SWの矩形は、画像データD自体が傾いているために、図11に示すように画像データDの縦辺および横辺のいずれとも平行とならない。図11では、S400において時計回り方向(+側)に30°回転させられた画像データD内に、検出窓SWを設定する様子を示している。
S500における正面顔検出処理では、正面顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S240に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S270に相当する処理)、顔画像の向きについては、顔の振り無しかつ顔の傾き有り(傾き=−30°)、という情報を記録する。つまり、S400で画像データDを時計回り方向(+側)に30°回転させた上で、正面顔が有ると判定されたということは、当該顔は画像データD内で画像データDの上下方向または左右方向に対して反時計回り方向(−側)に30°程度傾いていると言えるため、顔の傾き有り(傾き=−30°)と記録する。また、S500における正面顔検出処理では、S210〜S270に相当する処理の結果、内部メモリー12に検出成功窓SSWに関する情報が記録されている場合は、かかる情報に検出(成功)回数Vfgを追加する(S280に相当する処理)。この場合も、統合の対象とされなかった検出成功窓SSWに対しては、検出回数Vfg=1が与えられ、統合により生成された検出成功窓SSWに対しては、統合元となった検出成功窓SSWの数に応じた検出回数Vfgが与えられる。図3に例示した画像データDが処理対象である場合、反時計回り方向に約30°傾いた正面顔は存在しないため、当該S500で顔画像が検出される可能性は高くない。
S600では、顔画像検出部20が、S400で回転させられた後の画像データDを対象として振り顔検出処理を実行する。S600で実行する振り顔検出処理は、S300の振り顔検出処理(図9参照)と同じである。S600における振り顔検出処理では、振り顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S340に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S370に相当する処理)、顔画像の向きについては、顔の振り有り(横方向の振り)かつ顔の傾き有り(傾き=−30°)、という情報を記録する。また、S600における振り顔検出処理では、S310〜S370に相当する処理の結果、内部メモリー12に検出成功窓SSWに関する情報が記録されている場合は、かかる情報に検出(成功)回数Vpgを追加する(S380に相当する処理)。この場合も、統合の対象とされなかった検出成功窓SSWに対しては、検出回数Vpg=1が与えられ、統合により生成された検出成功窓SSWに対しては、統合元となった検出成功窓SSWの数に応じた検出回数Vpgが与えられる。図3に例示した画像データDが処理対象である場合、反時計回り方向に約30°傾いた振り顔は存在しないため、当該S600で顔画像が検出される可能性は高くない。
S700では、画像回転部24が、画像データD全体を、S400で回転させた方向とは逆方向に所定角度回転させる。S800では、顔画像検出部20が、S700で回転させられた後の画像データDを対象として正面顔検出処理を実行する。S800で実行する正面顔検出処理は、S500の正面顔検出処理と同じである。画像データDに設定される検出窓SWの矩形は、画像データD自体が傾いているために、図12に示すように画像データDの縦辺および横辺のいずれとも平行とならない。図12では、S400で回転させた画像データDを、S700において反時計回り方向(−側)に60°回転させた上で、S800で画像データD内に検出窓SWを設定する様子を示している。
S800における正面顔検出処理では、正面顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S240に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S270に相当する処理)、顔画像の向きについては、顔の振り無しかつ顔の傾き有り(傾き=+30°)、という情報を記録する。つまり、S700で画像データDを反時計回り方向(−側)に60°回転させた上で、正面顔が有ると判定されたということは、当該顔は画像データD内で画像データDの上下方向または左右方向に対して時計回り方向(+側)に30°程度傾いていると言えるため、顔の傾き有り(傾き=+30°)、と記録する。S800においても、S500と同様に、検出成功窓SSWに関する情報として検出(成功)回数Vfgが追加され得る(S280に相当する処理)。図3に例示した画像データDが処理対象である場合、時計回り方向に約30°傾いた正面顔(顔P1)が存在するため、当該S800では、顔P1を含む位置に検出成功窓SSW(複数の検出成功窓SSWが統合された検出成功窓SSW)が生じる可能性が高い。
S900では、顔画像検出部20が、S700で回転させられた後の画像データDを対象として振り顔検出処理を実行する。S900で実行する振り顔検出処理は、S600の振り顔検出処理と同じである。S900における振り顔検出処理では、振り顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S340に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S370に相当する処理)、顔画像の向きについては、顔の振り有り(横方向の振り)かつ顔の傾き有り(傾き=+30°)、という情報を記録する。S900においても、S600と同様に、検出成功窓SSWに関する情報として検出(成功)回数Vpgが追加され得る(S380に相当する処理)。図3に例示した画像データDが処理対象である場合、時計回り方向に約30°傾いた振り顔は存在しないため、当該S900で顔画像が検出される可能性は高くない。
図13は、S100〜S900を経て内部メモリー12に記録された検出成功窓SSW(統合されずに残った検出成功窓SSWおよび、複数の検出成功窓SSWが統合されて生成された検出成功窓SSW)を画像データD上に示している。図13においては、検出成功窓SSW7,SSW8,SSW9,SSW17,SSW18,SSW19,SSW20を例示している。検出成功窓SSW7,SSW8は、上述したようにS200で記録されたものであり(図8参照)、検出成功窓SSW9,SSW17,SSW18は、上述したようにS300で記録されたものである(図10参照)。また、検出成功窓SSW19は、S800(傾き有りの正面顔検出)で記録されたものであり、例えば、検出回数Vfg=6である。また、検出成功窓SSW20は、S900(傾き有りの振り顔検出)で記録されたものであり、例えば、検出回数Vpg=1である。図13から判るように、顔P1上に検出成功窓SSW7,SSW9,SSW19が重なっており、顔P2上に検出成功窓SSW8,SSW17が重なっており、顔P3上に検出成功窓SSW18,SSW20が重なっている。つまり、画像データDにおいては、S100〜S900の処理を行なった結果、顔P1〜P3のいずれについても複数の顔の向きが検出されている。
S1000では、顔画像決定部30が、このようなS100〜S900を経て内部メモリー12に記録された検出成功窓SSWの情報の中から、二つの検出成功窓SSWにかかる情報を比較対象として読み出す。
S1100では、顔画像決定部30は、直近のS1000で比較対象とした二つの検出成功窓SSWにかかる各情報を参照して、これら二つの検出成功窓SSWが重複しているか否か判定する。当該判定においても、例えば、二つの検出成功窓SSWのうち一方を注目窓とし、注目窓内の所定パーセント以上の面積が他方の検出成功窓SSWと重複している場合に、当該二つの検出成功窓SSWが重複していると判定する。当該S1100において、二つの検出成功窓SSWが重複していると判定されたときの当該二つの検出成功窓SSWで形成する領域は、特許請求の範囲に言う向き重複領域の一種に該当する。
顔画像決定部30は、S1100で二つの検出成功窓SSWが重複していると判定した場合にS1200に進み、一方、二つの検出成功窓SSWが重複していないと判定した場合にS1400に進む。S1200では、顔画像決定部30は、直近のS1100で重複していると判定された二つの検出成功窓SSWにかかる各情報(検出回数)を参照して、これら重複している二つの検出成功窓SSWのうちいずれか一方を選択する。
図14は、S1200の詳細をフローチャートにより示している。S1210では、顔画像決定部30は、そのとき比較対象としている二つの検出成功窓SSWそれぞれの、顔画像の向きの検出結果の信頼度を各々の検出回数に基づいて算出する。この場合、顔画像決定部30は、検出回数=信頼度としてもよい。例えば、互いに重複している検出成功窓SSW8と検出成功窓SSW17と(図13参照)を比較対象とした場合、検出成功窓SSW8にかかる顔の向き(顔の振り無しかつ顔の傾き無し)の信頼度は、検出成功窓SSW8についての検出回数Vfe(=6)となり、検出成功窓SSW17にかかる顔の向き(顔の振り有りかつ顔の傾き無し)の信頼度は、検出成功窓SSW17についての検出回数Vpe(=2)となる。
ただし本実施形態では、顔画像決定部30は、検出成功窓SSWの検出回数を、顔画像の向きに対応する所定の補正係数でそれぞれ補正することにより、上記向き重複領域における、顔画像の向き毎の検出結果の信頼度を算出する。本実施形態では、正面顔(振り無し)にかかる補正係数をaとし、振り顔にかかる補正係数をbとしており、補正係数a,bについては予め定められた値としている。従って、顔画像決定部30は、上記検出成功窓SSW8の顔の向き(顔の振り無しかつ顔の傾き無し)の信頼度は、検出成功窓SSW8についての検出回数Vfe×aとし、検出成功窓SSW17の顔の向き(顔の振り有りかつ顔の傾き無し)の信頼度は、検出成功窓SSW17についての検出回数Vpe×bとして算出する。
このように顔画像の向き毎に異なる補正係数a,bを予め用意するのは、向きが異なる顔にかかる検出成功窓SSWの検出回数における「1」が示す検出の確かさが、一致しないからである。つまり、正面顔検出部(正面顔検出器)22による正面顔の検出精度と、振り顔検出部(振り顔検出器)23による振り顔の検出精度は、必ずしも一致しない。特に、振り顔検出部23は、検出対象である振り顔の多様性が高いために、その検出精度を高めることが正面顔検出部22よりも困難である。そこで本実施形態では、上述したように正面顔にかかる検出成功窓SSWについての検出回数と、振り顔にかかる検出成功窓SSWについての検出回数とをそれぞれの顔の向きに対応する補正係数a,bでそれぞれ補正することで、上記検出精度の違いを補償し、補正後の両値を対比可能としている。ここでは基本的に、a>bとしている。
S1220では、顔画像決定部30は、上記比較対象としている二つの検出成功窓SSW毎の信頼度を比較し、二つの信頼度間に差があるか否か判定する。信頼度間に差がある場合はS1260に進み、高い方の信頼度にかかる検出成功窓SSWを選択する。上記のように検出成功窓SSW8にかかる信頼度と、検出成功窓SSW17にかかる信頼度とを比較した場合、検出回数が多くかつ正面顔である検出成功窓SSW8にかかる信頼度の方が基本的には勝り、S1260では検出成功窓SSW8が選択される。一方、S1220において二つの信頼度間に差が無いと判定した場合、顔画像決定部30は、顔の向き間の所定の優先順位に基づいて、上記比較対象としている二つの検出成功枠SSWのうち一方を選択する。
この場合、顔画像決定部30は、S1230において、正面顔と振り顔との比較であるか否か判定する。上述したように検出成功窓SSW8と検出成功窓SSW17とを比較対象としている場合、これは正面顔にかかる検出成功窓SSW8と振り顔にかかる検出成功窓SSW17との比較であるため、当該S1230で“Yes”の判定になる。この場合、顔画像決定部30はS1270に進み、正面顔にかかる検出成功窓SSWを選択する。つまり、信頼度が等しい場合に、正面顔と振り顔との比較であれば正面顔を優先する(向き重複領域に正面顔が存在する、という判断を優先する)。一方、S1230において、正面顔と振り顔との比較に該当しないと判定した場合、顔画像決定部30はS1240に進む。例えば、傾き無しの正面顔にかかる検出成功窓SSW7と、傾き有りの正面顔にかかる検出成功窓SSW19と(図13参照)の比較であれば、正面顔と振り顔との比較に該当しない。
S1240では、顔画像決定部30は、傾き無しの顔画像と傾き有りの顔画像との比較であるか否か判定する。例えば、検出成功窓SSW7と検出成功窓SSW19とを比較対象としている場合、これは傾き無しの顔画像にかかる検出成功窓SSW7と傾き有りの顔画像にかかる検出成功窓SSW19との比較であるため、当該S1240で“Yes”の判定になる。この場合、顔画像決定部30は、S1280に進み、傾き無しの顔画像にかかる検出成功窓SSWを選択する。つまり、信頼度が等しくかつ正面顔と振り顔との比較でない場合は、傾き無しの顔画像を優先する(向き重複領域に傾き無しの顔画像が存在する、という判断を優先する)。
一方、S1240において、傾き無しの顔画像と傾き有りの顔画像との比較に該当しないと判定した場合、顔画像決定部30はS1250に進む。S1250に進んだということは、基本的には、そのとき比較対象としている二つの検出成功窓SSWは、信頼度が等しくかつ顔画像の向きが同じと考えられる。これは、本来一つの検出成功窓SSWに統合されるべきものが二つに分かれてしまっていると考えられるため、顔画像決定部30は、そのとき比較対象としている二つの検出成功窓SSWを統合する。統合の手法は上述した通りである。そして、統合後の検出成功窓SSWにかかる情報を内部メモリー12に記録する。S1250に進むケースは極めて稀と考えられる。
S1300(図2)では、顔画像決定部30は、S1200で選択されなかった方の検出成功窓SSWにかかる情報を消去する。なお、S1200において上記S1250の処理が実行された場合には、S1250で統合された検出成功窓SSWの統合元となった二つの検出成功窓SSWにかかる情報を消去する。この結果、直近のS1100で重複していると判定された検出成功窓SSW間の重複状態が解消される。つまりこれにより、S1100で重複していると判定された二つの検出成功窓SSWのうち、S1200で選択された方の検出成功窓SSWにかかる顔画像の向きが、当該二つの検出成功窓SSWが対応している領域に存在する顔画像の向きとして(他に重複している検出成功窓SSWが無ければ)決定される。
S1400では、顔画像決定部30は、そのとき内部メモリー12に情報が記録されている検出成功窓SSWの中で、未だS1000で比較対象としていない検出成功窓SSWの組み合わせが存在する場合、S1000に戻り、この比較対象としていない組み合わせにかかる二つの検出成功窓SSWの情報を新たな比較対象として読み出す。一方、S1400において顔画像決定部30は、そのとき情報が記録されている検出成功窓SSWの全ての組み合わせについてS1000で比較対象としたと判定した場合、顔画像検出・決定処理を終了させる。
図15は、S1400で検出成功窓SSWの全組み合わせについてS1000で比較対象としたと判定された時点での、画像データDにおける検出成功窓SSWを例示している。図15(S1400が終了した時点)と図13(S900が終了した時点)とを比較すると、顔P1上で重複していた検出成功窓SSW7,SSW9,SSW19のうち、検出成功窓SSW7,SSW9が消去され、顔P2上で重複していた検出成功窓SSW8,SSW17のうち検出成功窓SSW17が消去され、顔P3上で重複していた検出成功窓SSW18,SSW20のうち検出成功窓SSW20が消去されたことが判る。言い換えると、顔画像決定部30は、検出成功窓SSW7,SSW9,SSW19が重複していた領域には、検出成功窓SSW19に関する顔の向き(振り無しかつ傾き有り(傾き=+30°))の顔画像が存在すると決定し、検出成功窓SSW8,SSW17が重複していた領域には、検出成功窓SSW8に関する顔の向き(振り無しかつ傾き無し)の顔画像が存在すると決定し、検出成功窓SSW18,SSW20が重複していた領域には、検出成功窓SSW18に関する顔の向き(振り有り(横方向の振り)かつ傾き無し)の顔画像が存在すると決定したことになる。
このように本実施形態によれば、プリンター10は、画像データDにおいて検出窓SWの位置や大きさを変更しながら検出窓SWを繰り返し設定し、検出窓SWを設定する度に、検出窓SW内の画像情報に基づいて、ある向きについての顔画像の検出を試みる。そして、当該向きの顔画像の検出を繰り返したとき、検出に成功した検出成功窓SSWが複数重複する場合には、当該重複する複数の検出成功窓SSWを一つに統合するとともに、当該重複する領域での検出回数(統合元の検出成功窓SSWの数)を記録する。また、このような処理を検出対象の顔の向きを変更して複数の顔の向きについて行なう。その結果、異なる顔の向きにかかる検出成功窓SSWが重複する場合、つまり同じ顔について複数の向きが検出された場合は、重複する検出成功窓SSW毎の顔の向きの信頼度を、当該重複する検出成功窓SSW毎の検出回数に基づいて算出し、信頼度が高い方の検出成功窓SSWにかかる顔の向きを、当該重複する領域に存在する顔画像の向きに決定するとした。そのため、画像データ上で同じ顔について複数の向きが検出された場合に、当該顔について、その向き(顔の振りや顔の傾き)を高い精度で且つ従来よりも高速に決定することができる。そして、このように画像データ上で複数の向きが検出された顔について向きを正確に決定することで、顔の向きを情報として要する種々の処理、例えば、顔を対象とした変形処理や、人物の監視処理などを、正確に行なうことが可能となる。
3.変形例
本発明は上述した実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能であり、以下のような各変形例も可能である。むろん、上記実施形態や各変形例を組み合わせた構成も、本発明の範囲となる。以下に説明しない事項に関しては、既に述べた事項が適用される。
変形例1:
顔画像検出部20は、画像データD上において、検出対象とする複数の顔の向きのうち一の顔の向きについて顔画像の有無を判定する処理を検出窓SWを変更して複数回実行する過程で、顔画像を検出できた回数が所定のしきい値を超えた領域については、以後、当該一の顔の向きおよび他の顔の向きにかかる顔画像の検出のために検出窓SWを設定する対象から除外するとしてもよい。つまり、顔画像検出部20は、ある向きの顔画像(例えば、傾き無しの正面顔)について検出窓SWの繰り返しの設定による検出を行なう過程で、検出成功窓SSWの重複が発生した場合には、重複が発生する度に、当該重複が発生している領域における検出成功窓SSWの重複回数(つまり上記検出回数)をカウントする。このようなカウントは、傾き無しの正面顔検出(S200)であれば、上記S240で行なう。
そして、検出成功窓SSWのある集団(互いに重複している検出成功窓SSWの集団)についてのカウント値が所定のしきい値を超えたタイミングで、顔画像検出部20は、この検出成功窓SSWの集団について上述したように統合し、統合後の検出成功窓SSWに関する情報(検出回数含む)を内部メモリー12に記録する。そして、この統合後の検出成功窓SSWに対応する画像データD内の領域については、以後、顔画像検出の対象から除外し、検出窓SWの設定も行なわない。つまり、当該カウント値がしきい値を超えたことをもって、当該領域にそのとき検出対象としていた向きの顔が確実に存在するとし、当該領域についてはそれ以上の顔画像検出処理は行なわない。この結果、例えば、傾き無しの振り顔検出(S300)の途中で、当該しきい値を超える数の傾き無しの振り顔についての検出成功窓SSWが重複する領域があった場合、その重複する検出成功窓SSWを統合した後の検出成功窓SSWにかかる領域については、他の向きについての顔画像の検出も含めて以降の顔画像検出を行なわなくてもよいため、プリンター10の処理負担を大幅に低減することができる。
変形例2:
上記では画像処理装置がプリンター10によって具現化される例を示したが、画像処理装置は、例えば、PCや、サーバーや、デジタルスチルカメラや、スキャナー等、各種画像処理機器によって実現されてもよい。つまり、これら各種画像処理機器が、少なくとも上記顔画像検出部20および顔画像決定部30と同じ機能を備え、入力画像に対して上記顔画像検出・決定処理を実行する。
変形例3:
画像処理装置は、入力画像が静止画であるか動画であるかに応じて、顔画像の向きと上記補正係数a,bとの対応関係を変更するとしてもよい。図16は、変形例にかかるシステムを簡易的に示している。変形例では、カメラ60で撮影され生成された画像データが、カメラ60と有線又は無線で通信可能に接続されたPC70に出力される。PC70は、本実施形態にかかる画像処理装置の一例に該当し、所定のプログラムを実行することにより顔画像検出部20および顔画像決定部30の機能を実現する。カメラ60は静止画と動画とのいずれも撮影可能である。かかる構成において、PC70は、カメラ60から入力した画像データについて、静止画であるか動画であるかを判定する。静止画であるか動画であるかは、例えば、画像データに付されているヘッダの情報や画像のファイル形式等を参照して判断する。PC70は、静止画であると判定した場合には、静止画用に予め設定された補正係数a,bを採用し、動画であると判定した場合には、動画用に予め設定された補正係数a,bを採用する。静止画用の補正係数a,bには、a>bの関係があり、動画用の補正係数a,bには、a<bの関係がある。
具体的には、静止画としての画像データに対して上記のように顔画像検出・決定処理を実行する際には、正面顔(振り無し)にかかる検出成功窓SSWの検出回数については、静止画用に設定された補正係数aで補正して信頼度を算出し、振り顔にかかる検出成功窓SSWの検出回数については、静止画用に設定された補正係数bで補正して信頼度を算出する。一方、動画としての画像データの各コマに対して上記のように顔画像検出・決定処理を実行する際には、正面顔にかかる検出成功窓SSWの検出回数については、動画用に設定された補正係数aで補正して信頼度を算出し、振り顔にかかる検出成功窓SSWの検出回数については、動画用に設定された補正係数bで補正して信頼度を算出する。
当該構成によれば、入力画像が静止画であれば、画像内から検出された顔画像の向きが振り無し(正面向き)として決定されやすくなり、入力画像が動画であれば、画像内から検出された顔画像の向きが振り有りと決定されやすくなる。つまり、静止画については人物を正面から撮影することが多いため、上記のようにa>bとすることで、実体に即した顔画像の向き(正面向き)が決定され易くなる(正面顔を振り顔と決定してしまうことが避けられる)。一方、動画を撮影するビデオカメラにおいては、防犯カメラ等、通行人を横から撮影することが多い。そのため、上記のようにb>aとすることで、ビデオカメラで撮影した動画の実体に即した顔画像の向き(横向き)が決定され易くなる(振り顔を正面顔と決定してしまうことが避けられる)。また、入力画像が動画である場合には、S1230(図14)において、正面顔と振り顔との比較であると判定したときには、S1270において、振り顔にかかる検出成功窓SSWを選択するとしてもよい。
変形例4:
上記では、振り顔検出部(振り顔検出器)23は、横方向の振り顔を検出対象としていたが、これに加えて、上下方向の振り顔を検出するとしてもよい。上下方向の振り顔とは、上向き傾向にある振り顔(上振り顔)又はうつむき傾向にある振り顔(下振り顔)を意味する。つまり変形例では、画像処理装置において、上記正面顔検出器22aおよび(横方向の振り顔検出のための)振り顔検出器が予め用意されているのと同様に、上下方向に振りの有る顔画像と、それ以外の顔画像と、からなる複数のサンプル画像データに基づいて学習することにより各矩形フィルターFや各しきい値やフィルター判定値などを最適化した各判定ステージからなる上下方向の振り顔検出のための振り顔検出器が、予め用意されている。そして、振り顔検出部23は、上下方向の振り顔検出のための振り顔検出器を用いることにより、以下のS350,S650,S950を実行し、検出窓SW内の画像について上下方向の振り顔の有り(振り顔の検出成功)/無し(振り顔の検出不成功)を判定する。
S350,S650,S950は、例えば、図17に示すように、上記図2のS100〜S1000間の所定タイミングに組み込まれて実行される。S350では、顔画像検出部20が、画像データDを対象として上下方向の振り顔検出処理を実行する。S350で実行する振り顔検出処理は、上下方向の振り顔検出のための振り顔検出器を用いる点が異なる以外は、S300(図9参照)と基本的に同じである。S350における振り顔検出処理では、振り顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S340に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S370に相当する処理)、顔画像の向きについては、顔の振り有り(上下方向の振り)かつ顔の傾き無し、という情報を記録する。
S650では、顔画像検出部20が、S400で回転させられた後の画像データDを対象として上下方向の振り顔検出処理を実行する。S650で実行する振り顔検出処理は、S350の振り顔検出処理と同じである。ただしS650における振り顔検出処理では、振り顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S340に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S370に相当する処理)、顔画像の向きについては、顔の振り有り(上下方向の振り)かつ顔の傾き有り(傾き=−30°)、という情報を記録する。S950では、顔画像検出部20が、S700で回転させられた後の画像データDを対象として上下方向の振り顔検出処理を実行する。S950で実行する振り顔検出処理は、S650の振り顔検出処理と同じである。ただしS950における振り顔検出処理では、振り顔の検出に成功したと判定された検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S340に相当する処理)、および、複数の検出成功窓SSWを統合した後の検出成功窓SSWに関する情報を内部メモリー12に記録する場合(S370に相当する処理)、顔画像の向きについては、顔の振り有り(上下方向の振り)かつ顔の傾き有り(傾き=+30°)、という情報を記録する。
このように顔画像検出部20が顔の振りに関し、振り無し(正面顔)、横方向の振り有り、上下方向の振り有り、それぞれについて検出窓SWを介して検出可能である場合、顔画像決定部30は、S1210(図14)で信頼度を算出する場合に補正係数a,b,cを用いる。bは横方向の振り顔にかかる検出成功窓SSWの検出回数を補正して信頼度を算出するための補正係数であり、cは上下方向の振り顔にかかる検出成功窓SSWの検出回数を補正して信頼度を算出するための補正係数である。基本的には、b=cの関係にあり、例えば、入力画像が静止画であればa>b=c、入力画像が動画であれば、a<b=cとする。このように顔画像検出部20が顔の振りに関し、振り無し(正面顔)、横方向の振り有り、上下方向の振り有り、それぞれについて検出窓SWを介して検出可能である場合、顔画像決定部30は、以下のS1245,S1290を実行する。
S1245は、例えば図18に示すように、上記図14のS1220で比較対象となっている二つの検出成功窓SSWの信頼度間に差が無いと判定された後の所定タイミングに組み込まれて実行される。この例では、顔画像決定部30は、S1240でNoと判定された後、S1245において、横方向の振り顔と上下方向の振り顔との比較であるか否か判定しYesであればS1290に進み、NoであればS1250に進む。S1290では、予め定められた優先基準(ここでは、横方向の振り顔を優先するものとする。)に基づいて、横方向の振り顔にかかる検出成功窓SSWと上下方向の振り顔にかかる検出成功窓SSWとのうちいずれか一方を選択する。ただし、実際に画像データ上で横方向の振り顔にかかる検出成功窓SSWと上下方向の振り顔にかかる検出成功窓SSWとが重複することは殆ど無いと考えられる。
補正係数a,b,cの大小関係は上述したものに限られない。例えば、入力画像が、想定される被写体を被写体の上方位置や下方位置から撮影するような位置に配設されているカメラ60(例えばATMの防犯カメラ)によって撮影されるものである場合、補正係数a,b,cのうち補正係数cをより大きな値に設定し、入力画像から検出される顔の向きが上下方向への振りに決定され易くしても良い。また、入力画像が、想定される被写体を被写体の横方向から撮影するような位置に配設されているカメラ60(例えば通行人を撮影するカメラ)によって撮影されるものである場合、補正係数a,b,cのうち補正係数bをより大きな値に設定し、入力画像から検出される顔の向きが横方向への振りに決定され易くしても良い。つまり、カメラ60の撮影位置や角度に応じて、補正係数a,b,cの設定を変更するとしてもよい。
10…プリンター、11…CPU、12…内部メモリー、13…I/F部、16…プリンターエンジン、17…カードI/F、20…顔画像検出部、21…検出窓設定部、22…正面顔検出部、23…振り顔検出部、24…画像回転部、25…重複窓統合部、30…顔画像決定部、40…表示処理部、50…印刷処理部、60…カメラ、70…PC、172…カードスロット

Claims (8)

  1. 入力画像内の画像情報に基づいて所定方向を向く顔画像の有無を判定することにより所定方向を向く顔画像を検出する処理を、複数の顔の向きを対象として実行する検出部と、
    上記検出部によって複数の向きの顔画像が重複して検出された向き重複領域が生じた場合に、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出し、算出した各信頼度の比較結果に応じて、向き重複領域に存在する顔画像の向きを決定する決定部と、を備えることを特徴とする画像処理装置。
  2. 上記検出部は、上記対象とする上記複数の顔の向き毎に、入力画像内に検出窓を設定して検出窓内の画像情報に基づいて対象の向きの顔画像の有無を判定する処理を検出窓を変更して複数回実行し、上記決定部は、上記向き重複領域において検出された顔画像の向き毎に、向き重複領域において顔画像が検出された回数に基づく信頼度を算出することを特徴とする請求項1に記載の画像処理装置。
  3. 上記検出部は、上記対象とする複数の顔の向きのうち一の顔の向きについて顔画像の有無を判定する処理を検出窓を変更して複数回実行する過程で、顔画像を検出できた回数が所定のしきい値を超えた領域については、以後、当該一の顔の向きおよび他の顔の向きにかかる顔画像の検出のために検出窓を設定する対象から除外することを特徴とする請求項2に記載の画像処理装置。
  4. 上記決定部は、上記向き重複領域において検出された顔画像の向き毎の向き重複領域における顔画像の検出回数を、顔画像の向きに対応する所定の補正係数でそれぞれ補正することにより、向き重複領域において検出された顔画像の向き毎の検出結果の信頼度を算出することを特徴とする請求項2または請求項3に記載の画像処理装置。
  5. 上記決定部は、上記入力画像が静止画であるか動画であるかに応じて、顔画像の向きと上記補正係数との対応関係を変更することを特徴とする請求項4に記載の画像処理装置。
  6. 上記検出部は、略正面を向く顔画像と、正面向きに対して振りの有る顔画像とをそれぞれ検出可能であることを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
  7. 上記検出部は、入力画像に対して傾いていない向きの顔画像と、入力画像に対して傾いた向きの顔画像とをそれぞれ検出可能であることを特徴とする請求項1〜請求項6のいずれかに記載の画像処理装置。
  8. 上記決定部は、上記算出した各信頼度が等しい場合は、顔の向き間の所定の優先順位に基づいて向き重複領域に存在する顔画像の向きを決定することを特徴とする請求項1〜請求項7のいずれかに記載の画像処理装置。
JP2009291960A 2009-12-24 2009-12-24 画像処理装置 Withdrawn JP2011134045A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009291960A JP2011134045A (ja) 2009-12-24 2009-12-24 画像処理装置
US12/978,235 US8428361B2 (en) 2009-12-24 2010-12-23 Image processing apparatus for detecting a face

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009291960A JP2011134045A (ja) 2009-12-24 2009-12-24 画像処理装置

Publications (1)

Publication Number Publication Date
JP2011134045A true JP2011134045A (ja) 2011-07-07

Family

ID=44187667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009291960A Withdrawn JP2011134045A (ja) 2009-12-24 2009-12-24 画像処理装置

Country Status (2)

Country Link
US (1) US8428361B2 (ja)
JP (1) JP2011134045A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014187451A (ja) * 2013-03-22 2014-10-02 Dainippon Printing Co Ltd 画像回転装置、画像回転方法、およびプログラム
EP3113073A1 (en) 2015-07-03 2017-01-04 Panasonic Intellectual Property Management Co., Ltd. Determination device, determination method, and non-transitory storage medium
WO2019107466A1 (ja) * 2017-12-01 2019-06-06 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JPWO2020209097A1 (ja) * 2019-04-10 2020-10-15

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012168538A1 (en) * 2011-06-07 2012-12-13 Nokia Corporation Method, apparatus and computer program product for object detection
JP2013055424A (ja) * 2011-09-01 2013-03-21 Sony Corp 撮影装置、パターン検出装置、および電子機器
KR101788740B1 (ko) * 2011-11-15 2017-10-20 삼성전자주식회사 피사체 검출 방법 및 장치와, 디지털 촬영 장치
JP5923759B2 (ja) * 2012-03-23 2016-05-25 パナソニックIpマネジメント株式会社 撮像装置
US9508119B2 (en) * 2012-07-13 2016-11-29 Blackberry Limited Application of filters requiring face detection in picture editor
US20140015854A1 (en) * 2012-07-13 2014-01-16 Research In Motion Limited Application of Filters Requiring Face Detection in Picture Editor
US9477881B2 (en) * 2012-10-19 2016-10-25 Nec Corporation Passenger counting system, passenger counting method and passenger counting program
JP6181925B2 (ja) * 2012-12-12 2017-08-16 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7391888B2 (en) * 2003-05-30 2008-06-24 Microsoft Corporation Head pose assessment methods and systems
JP4994311B2 (ja) * 2007-06-18 2012-08-08 富士フイルム株式会社 顔検出方法、顔検出装置及びデジタルカメラ
JP4935561B2 (ja) 2007-07-26 2012-05-23 セイコーエプソン株式会社 画像処理装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014187451A (ja) * 2013-03-22 2014-10-02 Dainippon Printing Co Ltd 画像回転装置、画像回転方法、およびプログラム
EP3113073A1 (en) 2015-07-03 2017-01-04 Panasonic Intellectual Property Management Co., Ltd. Determination device, determination method, and non-transitory storage medium
US9928404B2 (en) 2015-07-03 2018-03-27 Panasonic Intellectual Property Management Co., Ltd. Determination device, determination method, and non-transitory storage medium
WO2019107466A1 (ja) * 2017-12-01 2019-06-06 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP2019101741A (ja) * 2017-12-01 2019-06-24 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US11532095B2 (en) 2017-12-01 2022-12-20 Canon Kabushiki Kaisha Apparatus, method, and medium for merging pattern detection results
JP7253872B2 (ja) 2017-12-01 2023-04-07 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JPWO2020209097A1 (ja) * 2019-04-10 2020-10-15

Also Published As

Publication number Publication date
US8428361B2 (en) 2013-04-23
US20110158537A1 (en) 2011-06-30

Similar Documents

Publication Publication Date Title
JP2011134045A (ja) 画像処理装置
US11087407B2 (en) Systems and methods for mobile image capture and processing
JP5239625B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20090245655A1 (en) Detection of Face Area and Organ Area in Image
JP5071162B2 (ja) 画像処理装置、画像処理方法及び画像処理用コンピュータプログラム
JP2010160640A (ja) 画像処理装置、プリンター、画像処理方法および画像処理プログラム
JP2009237977A (ja) 画像出力制御装置、画像出力制御方法、画像出力制御プログラムおよび印刷装置
JP5018587B2 (ja) オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録したコンピュータ読取可能な記録媒体
JP2009237976A (ja) 顔画像出力制御装置、顔画像出力制御方法、顔画像出力制御プログラムおよび印刷装置
JP2010186268A (ja) 画像処理装置、プリンター、画像処理方法および画像処理プログラム
JP4985510B2 (ja) 対象画像における顔の画像に対応する顔領域の設定
JP2000261653A (ja) 画像処理装置
JP2009237978A (ja) 画像出力制御装置、画像出力制御方法、画像出力制御プログラムおよび印刷装置
JP2009237754A (ja) オブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体
JP2005283801A (ja) プリント装置、プリント方法およびそのプログラム
JP4946729B2 (ja) 画像処理装置
JP2009217609A (ja) 顔領域に基づき設定された画像領域を対象とした補正処理
JP2009223540A (ja) 対象画像からの顔領域の検出
JP2009217607A (ja) 画像中の顔領域検出における信頼度の算出

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130305