(58)【調査した分野】(Int.Cl.,DB名)
前記変更手段は、前記第1の領域と、前記複数の位置のうちのスコアが前記第1の閾値より大きい第2の閾値以上である位置に応じて決められる第2の領域の、前記画像における分布に基づいてスコアを変更する
請求項1に記載の情報処理装置。
前記変更手段は、前記面積又は前記比率と、前記複数の位置のうちの前記第1の領域に含まれる位置及び前記第2の領域に含まれる位置の少なくともいずれかのスコアとに基づいてスコアを変更する
請求項3に記載の情報処理装置。
【発明を実施するための形態】
【0012】
[第1実施形態]
図1は、本発明の一実施形態に係る画像処理システム100の構成を示すブロック図である。画像処理システム100は、画像から検出対象の物体を検出するための情報処理システムである。ここにおいて、検出対象の物体は、一定の傾向又は特徴を有する物体であればよく、特定の物体に限定されない。以下においては、検出対象の物体のことを、単に「対象物」という。対象物は、例えば、人体又はその一部(顔、手など)、動物、建物、車両、標識などである。
【0013】
画像処理システム100は、情報処理装置110及び120を備える。情報処理装置110及び120は、専用又は汎用のコンピュータ装置であり、例えばサーバ装置やパーソナルコンピュータである。情報処理装置110及び120は、互いに通信可能に構成されている。情報処理装置110及び120の通信方法は、特に限定されず、他の装置を中継してもよい。
【0014】
情報処理装置110は、算出部111と、変更部112とを備える。また、情報処理装置120は、物体検出部121を備える。
【0015】
算出部111は、画像について対象物らしさを示すスコアを算出する。ここにおいて、対象物らしさとは、当該対象物に存する特徴が画像に表れる程度をいい、尤度ともいう。算出部111は、画像の複数の位置について局所的なスコアをそれぞれ算出する。例えば、算出部111は、画像の局所的な特徴量(局所特徴量)に基づいてスコアを算出する。局所特徴量を算出するアルゴリズムは、特に限定されない。
【0016】
算出部111は、画像データを取得してスコアを算出してもよい。この場合、算出部111は、取得した画像データに基づいて局所特徴量を算出した後にスコアを算出する。あるいは、算出部111は、画像の複数の位置の局所特徴量を示すデータを取得してスコアを算出してもよい。この場合、局所特徴量の算出は、算出部111よりも前段にある装置や回路によって実行されればよい。
【0017】
算出部111は、画像の所定範囲を対象としてスコアを算出する。この範囲は、画像の一部であってもよいし全体であってもよい。例えば、算出部111は、対象物に応じた形状の検出窓(探索窓)を画像に対して設定し、検出窓内の所定の位置においてスコアを算出してもよい。この場合、算出部111は、画像における検出窓の位置やサイズを変更しながら、それぞれの位置毎又はサイズ毎にスコアを算出することが可能である。
【0018】
算出部111がスコアを算出する画像中の位置のことを、以下においては「算出点」ともいう。算出点の具体的な位置や数は、特に限定されない。ただし、画像から対象物を検出するためには、ある程度の数の算出点が画像に存在する必要がある。
【0019】
変更部112は、算出部111により算出されたスコアのうちの一部のスコアを変更する。変更部112は、画像におけるスコアの分布が所定の条件(第1の条件)を満たした場合に、スコアが所定の条件(第2の条件)を満たす算出点の少なくとも一部のスコアを変更する。第1の条件及び第2の条件は、それぞれ、(算出点の)位置的条件、(スコアの)数値的条件であるともいえる。
【0020】
端的に述べると、変更部112は、複数の算出点のうち、対象物の一部が遮蔽された領域である可能性が高い所定の領域に含まれる算出点のスコアを、対象物らしさが向上するように変更する。このとき、変更部112は、上述した条件を満たし、対象物らしさが低いと判断されたスコアを、対象物らしさが向上するように変更する。ここでいう所定の領域の特定方法は、複数考えられるが、例えば以下の方法である。
【0021】
変更部112は、検出対象の画像を算出部111により算出されたスコアに基づいて複数(2以上)の領域に分類し、複数の領域のうちのいずれかの領域に含まれる算出点のスコアを変更する。例えば、変更部112は、検出対象の画像を「低いスコアが集まっている領域(以下「第1の領域」という。)」、「高いスコアが集まっている領域(以下「第2の領域」という。)」の2種類の領域に分類し、第1の領域において算出されたスコアを変更する。
【0022】
具体的には、変更部112は、例えば、所定の範囲に含まれる算出点のスコアの平均値が所定の閾値以下であり、かつ、当該範囲に含まれ、スコアが当該閾値以下である算出点が一定数(又は一定の割合)以上ある場合に、スコアが当該閾値以下である算出点のスコアを変更する。変更部112は、この場合、スコアが所定の閾値以下である算出点のスコアの全部を変更するのではなく、同様のスコアの算出点が周囲にある程度存在する算出点のスコアのみを選択的に変更してもよい。
【0023】
変更部112は、算出部111により算出されたスコアを変更した後、スコアを出力する。変更部112は、変更したスコアだけでなく、所定の条件を満たさなかったために変更しなかったスコアも出力する。すなわち、所定の条件を満たさなかったスコアは、変更部112を素通りする。
【0024】
物体検出部121は、情報処理装置110からスコアを取得し、取得したスコアに基づいて対象物を検出する。換言すれば、物体検出部121は、取得したスコアに基づいて対象物の有無を検出する。また、物体検出部121は、対象物の検出結果に応じた処理を実行する。例えば、物体検出部121は、対象物を検出したか否かを示すデータを出力してもよい。あるいは、物体検出部121は、対象物の検出結果を利用した画像処理を実行してもよい。
【0025】
図2は、画像処理システム100における動作の概要を示すシーケンスチャートである。まず、情報処理装置110は、複数の算出点のスコアをそれぞれ算出する(ステップS11)。次いで、情報処理装置110は、ステップS11において算出されたスコアのうち、所定の条件を満たすスコアを変更する(ステップS12)。情報処理装置110は、スコアを情報処理装置120に供給する(ステップS13)。
【0026】
情報処理装置120は、情報処理装置110からスコアを取得したら、対象物の検出を試みる(ステップS14)。情報処理装置120は、複数の算出点のスコアに基づき、検出対象となっている画像に対象物が含まれているか否かを判断する。その後、情報処理装置120は、判断結果に応じた処理を実行する。このとき実行する処理は、特定の処理に限定されない。
【0027】
画像処理システム100は、
図2に示す処理を1つの画像に対して複数回実行してもよい。上述したように、画像処理システム100は、検出窓の位置やサイズを変えながら、
図2に示す処理を繰り返し実行してもよい。また、画像処理システム100は、算出点の位置や数を変えながら、
図2に示す処理を繰り返し実行してもよい。
【0028】
例えば、
図2に示す処理を1つの画像に対してn回実行する場合、画像処理システム100は、
図2に示す一連の処理をn回繰り返してもよい。あるいは、画像処理システム100は、情報処理装置110において、ステップS11、S12の処理をn回実行し、ステップS13においてn回分のスコアをまとめて情報処理装置120に供給してもよい。この場合、情報処理装置120は、スコアを取得してから、ステップS14の処理をn回分まとめて実行する。
【0029】
上記の画像処理システム100によれば、対象物の一部が遮蔽されている場合に、当該遮蔽された対象物が対象物であると判断される可能性を高めることが可能である。画像処理システム100は、複数の算出点におけるスコアに基づいて決められる所定の領域のスコアを変更するように構成されているため、スコアの変更に際し、対象物が遮蔽されている位置をあらかじめ設定する必要がない。換言すれば、画像処理システム100は、対象物が遮蔽されている位置をあらかじめ設定しなくても、遮蔽された対象物を対象物であると検出しやすくすることが可能である。
【0030】
[第2実施形態]
図3は、本発明の別の実施形態に係る画像処理システム200の構成を示すブロック図である。画像処理システム200は、画像から人間の顔を検出するための情報処理システムである。すなわち、本実施形態の対象物は、人間の顔である。なお、ここでいう顔は、特定の人物の顔である必要はない。画像処理システム200は、人間の顔であるとみなせる一般的な特徴を有する領域を画像から検出する。
【0031】
画像処理システム200は、画像処理装置210と、撮影装置220と、モニタ装置230とを備える。画像処理装置210、撮影装置220及びモニタ装置230は、互いに通信可能に接続されている。これらの装置は、インターネットなどのネットワークを介して接続されていてもよいが、ネットワークや他の装置を介さず直接接続されていてもよい。また、これらの装置は、少なくともいずれかが複数あってもよい。例えば、画像処理システム200は、1つの画像処理装置210に複数の撮影装置220が接続された構成であってもよい。なお、画像処理装置210は、撮影装置220又はモニタ装置230の一部として構成されてもよい。
【0032】
撮影装置220は、例えば、監視カメラである。撮影装置220は、例えば所定の施設や路上に設けられ、画像データを画像処理装置210に送信する。撮影装置220は、有人又は無人の移動体(自動車、ドローンなど)に搭載されていてもよい。画像データの色数(モノクロ又はカラー)、画素数、データフォーマットなどは、特に限定されない。また、ここでいう画像は、動画の一部(フレーム単位の画像)であってもよい。
【0033】
画像処理装置210は、撮影装置220から受信した画像データに基づいて人間の顔を検出する。画像処理装置210は、画像データから局所特徴量を算出し、いわゆるブースティングを用いた識別器により人間の顔を検出する。画像処理装置210は、検出結果に応じたデータ(画像データなど)をモニタ装置230に送信する。
【0034】
モニタ装置230は、例えば、画像を表示する表示装置である。モニタ装置230は、画像処理装置210による人物の検出に基づいて、さらに別の画像処理を実行してもよい。また、モニタ装置230は、画像処理装置210から送信された画像データをハードディスクなどの記録媒体に記録してもよい。
【0035】
図4は、画像処理装置210のより詳細な構成を示すブロック図である。画像処理装置210は、取得部211と、第1識別部212と、補正部213と、第2識別部214と、出力部215とを備える。
【0036】
本実施形態の画像処理装置210は、機械学習の学習アルゴリズムや局所特徴量が特定のものに限定されない。以下の記載は、学習アルゴリズムがReal AdaBoostであり、局所特徴量がLBP(Local Binary Pattern)である場合の典型例である。ただし、ここに示した学習アルゴリズムと局所特徴量は、本発明を実施するための一例にすぎず、本発明の範囲を限定するものではない。なお、サンプルによる学習は、あらかじめ実行されているものとし、ここでは詳細な説明が省略される。
【0037】
取得部211は、撮影装置220から送信された画像データを取得する。取得部211は、取得した画像データに対して、後段の処理の前処理に相当する画像処理を実行してもよい。例えば、取得部211は、解像度の変換、カラー画像からグレースケール画像への減色、画像の拡大、縮小又は回転などの画像処理を実行してもよい。
【0038】
第1識別部212は、取得部211により取得された画像データが示す画像の複数の算出点について、顔らしさを示すスコア(評価値)をそれぞれ算出する。第1識別部212は、具体的には、算出点毎の弱識別器によって構成される。第1識別部212は、所定範囲の検出窓を設定し、検出窓内の画像の複数の算出点に関する局所特徴量を算出する。そして、第1識別部212は、算出した局所特徴量に基づいて算出点毎のスコアを算出する。第1識別部212は、第1実施形態の算出部111の一例に相当する。
【0039】
例えば、局所特徴量がLBPである場合、第1識別部212は、算出点とその周辺の8画素の画素値(例えば輝度値)を比較することで256次元の局所特徴量を算出する。第1識別部212は、学習段階であらかじめ求められたルックアップテーブルを用いて、この局所特徴量からスコアを算出する。
【0040】
以下において、本実施形態のスコアは、顔らしさ、すなわち対象物らしさが高いほど大きい値であるとする。また、本実施形態のスコアは、0を基準とし、顔である可能性が高い場合に正であり、顔でない(非顔である)可能性が高い場合に負であるとする。ただし、スコアの値の取り方は、必ずしもこの例に限定されない。
【0041】
補正部213は、第1識別部212により算出されたスコアを選択的に変更する。補正部213は、後述する手順により、第1識別部212により算出された複数の算出点のスコアのうち所定の条件を満たすスコアを変更する。本実施形態においては、補正部213によるスコアの変更のことを「補正」という。補正部213は、第1実施形態の変更部112の一例に相当する。
【0042】
第2識別部214は、第1識別部212により算出され、補正部213により補正されたスコアに基づいて顔を検出する。第2識別部214は、第1識別部212の弱識別器に対する強識別器として機能する。第2識別部214は、第1実施形態の物体検出部121の一例に相当する。
【0043】
Real AdaBoostを用いる場合、第2識別部214は、第1識別部212及び補正部213を経て得られたスコアを加算し、加算したスコアを所定の閾値と比較する。第2識別部214は、加算したスコアが所定の閾値以上であれば、検出窓内の画像に顔が含まれていると判断し、当該スコアが当該閾値未満であれば、検出窓内の画像に顔が含まれていないと判断する。
【0044】
出力部215は、第2識別部214による判断結果に応じたデータを出力する。このとき、出力部215は、取得部211により取得された画像データに対して画像処理を実行してもよい。
【0045】
例えば、出力部215は、第2識別部214により画像に顔が含まれていると判断された場合には「1」、第2識別部214により画像に顔が含まれていないと判断された場合には「0」を出力してもよい。あるいは、出力部215は、顔であると判断された検出窓を可視化し、取得部211により取得されたオリジナルの画像に検出窓を重畳して表示する画像データを出力してもよい。このようにすれば、第2識別部214による判断結果をユーザにわかりやすく示すことができる。
【0046】
図5は、画像処理装置210の動作の概要を示すフローチャートである。このフローチャートは、画像処理装置210が実行する処理のうち、特に補正部213による補正の手順を詳細に示す。
【0047】
図5に示す動作において、取得部211は、適当なタイミングで画像データを取得する(ステップS201)。取得部211が画像データを取得するタイミングは、特に限定されない。第1識別部212は、ステップS201において取得された画像データを用いて、所定範囲(すなわち所定画素数)の画像からスコアを算出する(ステップS202)。第1識別部212は、上述したように、複数の算出点のそれぞれについてスコアを算出する。
【0048】
補正部213は、ステップS202において算出されたスコアに基づいてスコアデータを生成する(ステップS203)。ここにおいて、スコアデータとは、画像におけるスコアの分布を示すデータをいい、算出点の画素と当該画素において算出されたスコアとを対応付けたデータをいう。なお、スコアが算出される画素は、画像の全体ではなく一部でよい。
【0049】
次に、補正部213は、スコアデータに対して平滑化処理(フィルタ処理)を実行する(ステップS2041)。この平滑化処理に際し、スコアが算出されていない画素のスコアは、「0」であるとみなす。平滑化処理に用いるフィルタは、例えば移動平均フィルタやガウシアンフィルタであるが、特定のフィルタに限定しなくてよい。
【0050】
図6〜8は、フィルタ処理後のスコアデータを例示する図である。
図6〜8は、検出窓のサイズが23×23画素であり、スコアの範囲が−0.2〜+0.2である場合のスコアデータを示している。
図6は、顔が画像に含まれている場合のスコアデータの一例を示す。
図7は、遮蔽された顔(具体的には、
図6のスコアデータが算出された顔と同じ顔の左側を遮蔽した顔)が画像に含まれている場合のスコアデータの一例を示す。
図8は、顔が画像に含まれていない場合(非顔の画像の場合)のスコアデータの一例を示す。
【0051】
補正部213は、スコアデータに平滑化処理を実行したら、N(Negative)領域及びP(Positive)領域を算出する(ステップS2042、S205)。ここにおいて、N領域とは、(平滑化後の)スコアが第1の閾値(例えば「−0.1」)以下である画素が連続している領域をいう。N領域は、換言すれば、顔らしい特徴を有しない領域であるともいえる。これに対し、P領域とは、(平滑化後の)スコアが第2の閾値(例えば「+0.1」)以上である画素が連続している領域をいう。P領域は、換言すれば、顔らしい特徴を有する領域であるともいえる。N領域は、第1実施形態における第1の領域の一例に相当する。P領域は、第1実施形態における第2の領域の一例に相当する。
【0052】
補正部213は、ステップS2042において算出したN領域が一定の広さ以上存在するか否かを判断する(ステップS206)。補正部213は、例えば、N領域の面積(すなわち画素数)が所定の閾値以上であるか否かを判断してもよいし、画像全体に対してN領域が占める割合が所定の比率以上であるか否かを判断してもよい。
【0053】
なお、N領域が離散的に、すなわち画像中に複数現れる場合、補正部213は、個々のN領域の広さを閾値と比較してもよいし、複数のN領域を足し合わせた広さを閾値と比較してもよい。前者の場合、補正部213は、広さが閾値以上であるN領域のみを補正の対象とし、広さが閾値未満であるN領域を補正の対象から除外してもよい。
【0054】
一定の広さ以上のN領域が存在すれば(S206:YES)、補正部213は、ステップS205において算出したP領域が一定の広さ以上存在するか否かを判断する(ステップS207)。ステップS207の判断は、ステップS206の判断と同様に実行される。ただし、判断に用いる閾値は、ステップS206とS207とで異なってもよい。
【0055】
一定の広さ以上のN領域及びP領域が存在する場合(S207:YES)、補正部213は、N領域に属する算出点のスコアを補正する(ステップS208)。一方、N領域及びP領域の少なくとも一方が一定の広さに満たない場合(S206:NO又はS207:NO)、補正部213は、ステップS208の処理をスキップする。つまり、補正部213は、ある程度の広さ以上のN領域及びP領域がともに存在する場合に補正を実行し、そうでない場合には補正を実行しない。
【0056】
ステップS208におけるスコアの補正方法は、例えば、以下に示す4通りの方法のいずれかが適用可能である。第1の方法は、N領域に含まれる算出点のスコアに一定値(例えば「+0.1」又は「+0.15」)を加算する方法である。第2の方法は、N領域に含まれる算出点のスコアを一定値(例えば「0」又は「+0.1」)に変更する方法である。第3の方法は、N領域に含まれる算出点のスコアを算出点毎(すなわち位置毎)に決められた所定の値に変更する方法である。第4の方法は、N領域に含まれる算出点のスコアの補正量をN領域以外の領域のスコアに応じて決定する方法である。
【0057】
第3の方法は、例えば、ある画像のN領域に含まれる算出点のスコアを、当該画像が顔を含む場合の典型的な値に変換するものである。このような値は、学習に用いるサンプルなどに基づいて、あらかじめ実験的又は経験的に求められればよい。
【0058】
第4の方法は、例えば、P領域に含まれる算出点のスコアの平均値が高ければ補正量を大きくし、当該平均値が低ければ補正量を小さくするものである。なぜならば、P領域に含まれる算出点のスコアの平均値が高い画像には、顔が含まれている可能性が高いからである。このような場合に現れるN領域は、遮蔽された領域である可能性が高いといえる。
【0059】
いずれの方法においても、補正後のスコアは、結果として対象物らしさが向上するように値が変更されていれば足りる。例えば、本実施形態においては、補正部213は、スコアに対して何らかの正の値を加算すれば足りる。個々のスコアは、補正に際し、必ずしも第2の閾値以上の値に変更されなくてもよい。
【0060】
第1の方法又は第2の方法によれば、算出点毎の補正値を計算する必要がないため、処理を単純化することが可能である。これに対し、第3の方法によれば、第1の方法又は第2の方法を用いた場合よりも画像に顔が含まれるか否かを精度良く判断することが可能である。
【0061】
なお、N領域に属する算出点は、その全てが第1の閾値以下であるとは限らない。なぜならば、ここでいうN領域は、平滑化処理後のスコアデータに基づいて定められる領域だからである。したがって、スコアが第1の閾値より大きい算出点であっても、その周辺の画素のスコア次第でN領域に属する可能性がある。補正部213は、このような算出点、すなわち“N領域に含まれるが、スコアが第1の閾値より大きい算出点”を補正の対象に含んでもよいし、含まなくてもよい。つまり、補正部213は、N領域に含まれる全ての算出点のスコアを補正してもよいし、N領域に含まれる算出点の一部のみを補正してもよい。
【0062】
補正部213により実行される処理は、以上のとおりである。以下においては、このステップS203〜S208の処理のことを「補正処理」という。なお、補正処理は、一部のステップの順序が異なっていてもよい。例えば、ステップS206、S207の判断は、順序が逆であってもよいし、あるいは並列的に(すなわち同時に)実行されてもよい。
【0063】
第2識別部214は、補正処理による補正結果を用いて、顔の検出を試みる(ステップS209)。すなわち、第2識別部214は、P領域に含まれる算出点と、P領域とN領域のいずれにも含まれない算出点については、第1識別部212によって算出されたスコアをそのまま用いる。一方、N領域に含まれる算出点については、第2識別部214は、補正部213によって補正されたスコアを用いる。その後、出力部215は、第2識別部214による判断結果に応じたデータを出力する(ステップS210)。
【0064】
画像処理装置210は、検出窓の位置やサイズを変えながら
図5に示す処理を繰り返し実行してもよい。また、画像処理装置210は、撮影装置220から画像データを反復的に受信し、それぞれの画像データについて
図5に示す処理を実行してもよい。
【0065】
上記の画像処理システム200によれば、N領域に含まれる算出点のスコアが底上げされることにより、顔の一部が遮蔽された場合に顔を検出しやすくすることが可能である。本発明の発明者は、「顔であるが一部が遮蔽されている画像(以下「オクルージョン画像」という。)」には「顔でない画像」と異なる一定の傾向が現れることに着目し、この傾向に基づいて両者の高精度な区別を可能にした。その傾向とは、オクルージョン画像には、N領域だけでなくN領域とP領域の双方が一定の割合以上で現れる点である。
【0066】
図8に示したように、顔でない画像は、算出点のスコアが全体的に低く、その大部分がN領域に属する。これに対し、オクルージョン画像は、
図7に示すように、遮蔽された領域がN領域になり、遮蔽されていない領域がP領域になるという、顔でない画像と異なる傾向を生じる。すなわち、オクルージョン画像は、N領域を含む点においては顔でない画像と共通するが、N領域の分布やN領域とP領域の比率といった点において顔でない画像と相違する。画像処理装置210は、このような傾向に基づいてスコアの補正の可否を判断することで、オクルージョン画像から顔を検出しやすくしながらも、顔でない画像のスコアの補正を抑制することを可能にしている。
【0067】
なお、画像処理装置210は、遮蔽物の具体的な位置を問わずに遮蔽物の影響を低減させて顔を検出することが可能である。そのため、画像処理装置210によれば、顔を遮る遮蔽物が特定の位置にある物体でなくても、遮蔽物の影響を低減させることが可能である。例えば、画像処理装置210は、ユーザがマスク(サージカルマスク)で口を隠している場合と、サングラスで目を隠している場合のいずれにおいても、同じアルゴリズムで処理を実行することが可能である。なお、顔に対する遮蔽物は、ユーザが顔面に装着する物に限られず、例えば手や髪であってもよい。
【0068】
[変形例]
本発明の実施の形態は、上述した実施形態のみに限定されない。本発明の実施の形態は、例えば、以下に記載する変形例を含み得る。また、本発明の実施の形態は、本明細書に記載された実施形態及び変形例を必要に応じて適宜に組み合わせたものであってもよい。例えば、特定の実施形態を用いて説明された変形は、他の実施形態に対しても適用され得る。
【0069】
(変形例1)
補正部213は、補正に際し、N領域に含まれる算出点のスコアを無効な値に変更してもよい。ここにおいて、無効な値とは、第2識別部214における判断に影響を与えない値をいう。あるいは、第2識別部214は、無効なスコア以外のスコアを用いて画像に顔が含まれるか否かを判断してもよい。したがって、補正部213は、この場合、第2識別部214による判断に用いるスコアの数を減少させることが可能である。また、上述した例、すなわち、スコアが顔らしさに応じて正又は負の値をとる場合、補正部213は、N領域に含まれる算出点のスコアを「0」に変更してもよい。
【0070】
(変形例2)
ステップS206(又はS207)の判断(
図5参照)において、補正部213は、N領域(又はP領域)の広さに加え、当該領域の算出点のスコアに基づいて補正を実行するか否かを判断してもよい。例えば、補正部213は、ステップS206において、N領域の広さと当該領域の算出点のスコアとに応じて定まる指標を算出し、算出した指標が所定の閾値以上である場合に補正を実行してもよい。この指標は、例えば、N領域の面積に当該領域に含まれる算出点のスコアの平均値を乗じた積である。
【0071】
(変形例3)
補正部213は、算出点のスコアと他の判断基準とを組み合わせて補正を実行してもよい。ここでいう他の判断基準には、例えば、周知の物体検出アルゴリズムのいずれかが適用され得る。
【0072】
例えば、補正部213は、対象物に特有の特徴点を検出する機能をさらに有してもよい。ここでいう特徴点は、対象物が顔である場合、眼、眉、眉間、鼻及び口の端点又は中心などである。以下においては、顔に特有の特徴点を「顔特徴点」という。
【0073】
顔特徴点は、ある程度の個体差はあるものの、相対的な位置関係に一定の傾向を有する。例えば、口に対応する顔特徴点は、鼻に対応する顔特徴点よりも下方にある。また、右眼及び左眼に対応する顔特徴点は、鼻に対応する顔特徴点よりも上方にある。ただし、ここでは、顔は横向きや逆向きではないものとする。
【0074】
所定の位置において当該位置に応じた顔特徴点が検出された場合には、画像に顔が含まれている可能性が高いといえる。この場合において、画像にP領域とN領域とが含まれるとき、当該画像は、(非顔ではなく)顔の一部が遮蔽された画像である可能性が高いといえる。また、顔特徴点がP領域において検出された場合には、画像に顔が含まれている可能性がさらに高まる。
【0075】
補正部213は、画像の所定の位置において顔特徴点の検出を試みる。補正部213は、顔特徴点の検出をいくつかの代表的な位置(右眼、左眼、眉間、鼻、口など)において実行する。補正部213は、例えば、所定の数以上の顔特徴点が検出された場合には、P領域に含まれる算出点のスコアを顔らしさが向上するようにさらに補正してもよい。また、補正部213は、所定の数以上の顔特徴点が検出されなかった場合には、P領域に含まれる算出点のスコアを顔らしさが低下するように補正してもよい。このようにすれば、P領域及びN領域の有無だけでなく、顔らしさも加味して判断が行われるため、P領域とN領域とが存在する場合の顔と非顔の区別をより正確に行うことが可能である。
【0076】
(変形例4)
本発明の実施の形態には、いわゆるカスケード型識別器(分類器)が含まれ得る。ここにおいて、カスケード型識別器とは、複数の識別器を直列につなぎ合わせて対象物を検出する識別器をいう。
【0077】
図9は、本発明の他の実施形態に係るカスケード型識別器300の構成を示すブロック図である。カスケード型識別器300は、識別器300
1、300
2、300
3、…、300
mを備える。なお、mの具体的な値は、特に限定されない。
【0078】
識別器300
1〜300
mは、その少なくともいずれかが、第1実施形態の画像処理システム100又は第2実施形態の画像処理装置210と同等の機能を有する。ただし、ここでは、識別器300
1〜300
mの全てが画像処理システム100又は画像処理装置210と同等の機能を有するものとする。識別器300
1〜300
mは、それぞれ、弱識別器の位置やサイズが異なるように構成される。識別器300
1〜300
mは、例えば、前段ほど高速であるが誤検出も多く、後段ほど検出精度が高くなるように構成される。
【0079】
カスケード型識別器300は、前段の識別器(例えば識別器300
1)において対象物が検出された画像を後段の識別器(識別器300
2)に入力して当該対象物の有無を判断する処理を繰り返す。カスケード型識別器300は、識別器300
1〜300
mの全てで対象物が検出された場合に、画像に対象物が含まれていると判断する。
【0080】
カスケード型識別器300は、前段の識別器においては、弱識別器の数が少ないためにN領域(第1の領域)及びP領域(第2の領域)を算出することができない。しかし、カスケード型識別器300は、対象物の検出を繰り返すと、やがてN領域及びP領域を算出できるようになる。
【0081】
カスケード型識別器300は、ある段階の識別器においてN領域及びP領域を算出し、これらが所定の条件(
図5のステップS206、S207参照)を満たす場合に、当該識別器においてスコアを補正する。また、カスケード型識別器300は、ある段階の識別器においてN領域及びP領域を算出し、これらが所定の条件を満たす場合に、当該識別器以降の識別器においてスコアを補正するように構成されてもよい。
【0082】
(変形例5)
算出点毎に算出されるスコアは、必ずしも数値でなくてもよい。スコアは、例えば、A、B、C、…といったアルファベットによって対象物らしさを段階的に示すものであってもよい。また、スコアが示す対象物らしさは、例えばスコアが1〜10の10段階である場合において、1が最高でもよいし、10が最高でもよい。
【0083】
(変形例6)
第2実施形態の画像処理システム200は、第1実施形態の画像処理システム100と同様に、顔以外の対象物にも適用可能である。ただし、対象物の検出に用いるアルゴリズムの細部は、対象物に応じて異なり得る。
【0084】
局所特徴量は、LBPに限定されない。スコアの算出に用いられる局所特徴量は、例えば以下の特徴量であってもよい。
・Haar-Like特徴量[Viola04]
・HOG(Histograms of Oriented Gradients)特徴量[Dalal05]
【0085】
また、機械学習の学習アルゴリズムも、Real AdaBoostに限定されない。機械学習の学習アルゴリズムは、ブースティング全般のほか木構造の識別器を用いたアンサンブル学習が利用可能であり、例えば以下のアルゴリズムであってもよい。
・AdaBoost
・LogitBoost
・Gentle AdaBoost
・Random Forests
【0086】
(変形例7)
第1実施形態及び第2実施形態に記載された装置の具体的なハードウェア構成は、さまざまなバリエーションが考えられ、特定の構成に限定されない。例えば、第1実施形態の情報処理装置110及び120は、単一の装置によって構成されてもよい。また、第2実施形態の画像処理装置210は、複数の装置によって実現されてもよい。また、これらの実施形態に含まれる個々の装置は、有線又は無線のいずれで接続されてもよく、また、ネットワークを介して接続されてもよい。
【0087】
図10は、情報処理装置110、120又は画像処理装置210を実現するコンピュータ装置400のハードウェア構成を例示するブロック図である。コンピュータ装置400は、CPU(Central Processing Unit)401と、ROM(Read Only Memory)402と、RAM(Random Access Memory)403と、記憶装置404と、ドライブ装置405と、通信インタフェース406と、入出力インタフェース407とを備える。
【0088】
CPU401は、RAM403を用いてプログラム408を実行する。プログラム408は、ROM402に記憶されていてもよい。また、プログラム408は、記録媒体409に記録され、ドライブ装置405によって読み出されてもよいし、外部装置からネットワーク410を介して送信されてもよい。通信インタフェース406は、ネットワーク410を介して外部装置とデータをやり取りする。入出力インタフェース407は、周辺機器(キーボード、マウス、表示装置など)とデータをやり取りする。通信インタフェース406及び入出力インタフェース407は、データを取得又は出力する手段として機能することができる。
【0089】
なお、情報処理装置110、120又は画像処理装置210の構成要素の一部又は全部は、汎用又は専用の回路、プロセッサ等やこれらの組み合わせによって実現され得る。例えば、画像処理に係る構成要素は、GPU(Graphics Processing Unit)やASIC(Application Specific Integrated Circuit)であってもよい。情報処理装置110、120又は画像処理装置210の構成要素は、単一のチップによって構成されてもよいし、複数のチップによって構成されてもよい。また、情報処理装置110、120又は画像処理装置210の構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0090】
[付記]
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【0091】
(付記1)
所定範囲の画像に含まれる複数の位置について、検出対象物らしさを示す局所的なスコアをそれぞれ算出する算出手段と、
前記複数の位置のうちの前記算出された複数のスコアに応じて決められる所定の領域に含まれる位置のスコアを、前記検出対象物らしさが向上するように変更する変更手段と
を備える情報処理装置。
【0092】
(付記2)
前記変更手段は、前記複数の位置のうちのスコアが第1の閾値以下である位置に応じて決められる第1の領域の前記画像における分布に基づいてスコアを変更する
付記1に記載の情報処理装置。
【0093】
(付記3)
前記変更手段は、前記複数の位置のうちのスコアが第1の閾値以下である位置に応じて決められる第1の領域と、前記複数の位置のうちのスコアが前記第1の閾値より大きい第2の閾値以上である位置に応じて決められる第2の領域の前記画像における分布に基づいてスコアを変更する
付記1又は付記2に記載の情報処理装置。
【0094】
(付記4)
前記変更手段は、前記画像における前記複数の位置のうちのスコアが第1の閾値以下である位置に応じて決められる第1の領域又は前記複数の位置のうちのスコアが前記第1の閾値より大きい第2の閾値以上である位置に応じて決められる第2の領域の面積又は比率に基づいてスコアを変更する
付記1から付記3までのいずれかに記載の情報処理装置。
【0095】
(付記5)
前記変更手段は、前記面積又は前記比率と、前記複数の位置のうちの前記第1の領域に含まれる位置及び前記第2の領域に含まれる位置の少なくともいずれかのスコアとに基づいてスコアを変更する
付記4に記載の情報処理装置。
【0096】
(付記6)
前記変更手段は、前記所定の領域に含まれる位置のスコアの少なくともいずれかに対して一定値を加算する
付記1から付記5までのいずれかに記載の情報処理装置。
【0097】
(付記7)
前記変更手段は、前記所定の領域に含まれる位置のスコアの少なくともいずれかを一定値に変更する
付記1から付記5までのいずれかに記載の情報処理装置。
【0098】
(付記8)
前記変更手段は、前記複数の位置のうちの前記所定の領域に含まれる位置のスコアを当該位置に応じて変更する
付記1から付記5までのいずれかに記載の情報処理装置。
【0099】
(付記9)
前記変更手段は、前記複数の位置のうちの前記所定の領域に含まれる位置のスコアを、当該所定の領域に含まれない位置のスコアに応じて変更する
付記1から付記5までのいずれかに記載の情報処理装置。
【0100】
(付記10)
前記画像の前記検出対象物に応じた所定の位置において特徴点を検出する特徴点検出手段を備え、
前記変更手段は、前記複数の位置のうち前記第2の領域に含まれる位置のスコアを、前記検出された特徴点に応じて変更する
付記3から付記5までのいずれかに記載の情報処理装置。
【0101】
(付記11)
前記算出されたスコア又は前記変更されたスコアに基づいて前記検出対象物を検出する物体検出手段を備える
付記1から付記10までのいずれかに記載の情報処理装置。
【0102】
(付記12)
前記変更手段は、前記複数の位置のうちの前記第1の領域に含まれる位置のスコアを、前記物体検出手段における検出において無効な値に変更する
付記11に記載の情報処理装置。
【0103】
(付記13)
所定範囲の画像に含まれる複数の位置について、検出対象物らしさを示す局所的なスコアをそれぞれ算出する算出手段と、
前記複数の位置のうちの前記算出された複数のスコアに応じて決められる所定の領域に含まれる位置のスコアを、前記検出対象物らしさが向上するように変更する変更手段と、
前記算出されたスコア及び前記変更されたスコアに基づいて前記検出対象物を検出する物体検出手段と
を備える画像処理システム。
【0104】
(付記14)
所定範囲の画像に含まれる複数の位置について、検出対象物らしさを示す局所的なスコアをそれぞれ算出し、
前記複数の位置のうちの前記算出された複数のスコアに応じて決められる所定の領域に含まれる位置のスコアを、前記検出対象物らしさが向上するように変更し、
前記算出されたスコア及び前記変更されたスコアに基づいて前記検出対象物を検出する
画像処理方法。
【0105】
(付記15)
コンピュータに、
所定範囲の画像に含まれる複数の位置について、検出対象物らしさを示す局所的なスコアをそれぞれ算出する処理と、
前記複数の位置のうちの前記算出された複数のスコアに応じて決められる所定の領域に含まれる位置のスコアを、前記検出対象物らしさが向上するように変更する処理と
を実行させるためのプログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
【0106】
この出願は、2015年10月7日に出願された日本出願特願2015−199081を基礎とする優先権を主張し、その開示の全てをここに取り込む。