(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】画像処理装置、画像処理方法
(51)【国際特許分類】
G06T 7/20 20170101AFI20241021BHJP
【FI】
G06T7/20
(21)【出願番号】P 2020186749
(22)【出願日】2020-11-09
【審査請求日】2023-11-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】田港 朝貴
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特開2017-010224(JP,A)
【文献】特開2017-212581(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20- 7/292
(57)【特許請求の範囲】
【請求項1】
第1フレーム画像における探索領域から被写体を検出する前に該被写体の特定部位を検出する検出手段と、
前記検出手段による前記特定部位の検出の後、前記第1フレーム画像における前記被写体の追尾処理を行う処理手段と
、
前記第1フレーム画像における探索領域と、前記第1フレーム画像に先行するフレーム画像における追尾処理の結果と、前記第1フレーム画像における追尾処理の結果と、に基づいて、前記第1フレーム画像に後続する第2フレーム画像における探索領域を特定する特定手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記検出手段は、前記第1フレーム画像における探索領域内の画像をクロップ画像として取得し、該クロップ画像における前記特定部位の尤度マップを生成し、該生成した尤度マップに基づいて前記特定部位を検出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記検出手段は、前記尤度マップにおいて前記特定部位以外の領域がフィルタリングされたフィルタリング処理済み尤度マップに基づいて前記特定部位を検出することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記特定部位は、第1の部位と、該第1の部位を内包する第2の部位と、を含み、
前記検出手段は、前記第1フレーム画像における探索領域内の画像をクロップ画像として取得し、該クロップ画像における前記第1の部位の尤度マップに基づいて前記第1の部位を検出し、該クロップ画像における前記第2の部位の尤度マップに基づいて前記第2の部位を検出することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記検出手段は、前記第1の部位の尤度マップにおいて該第1の部位以外の領域がフィルタリングされたフィルタリング処理済み尤度マップに基づいて前記第1の部位を検出し、前記第2の部位の尤度マップにおいて該第2の部位以外の領域がフィルタリングされたフィルタリング処理済み尤度マップに基づいて前記第2の部位を検出することを特徴とする請求項
4に記載の画像処理装置。
【請求項6】
更に、
前記第1フレーム画像における前記第2の部位の領域と、前記第1フレーム画像に先行するフレーム画像における追尾処理の結果と、前記第1フレーム画像における追尾処理の結果と、に基づいて、前記第1フレーム画像に後続する第2フレーム画像における探索領域を求める手段を備えることを特徴とする請求項
4または
5に記載の画像処理装置。
【請求項7】
更に、
前記第1の部位の尤度マップと前記第2の部位の尤度マップとに基づいて前記追尾処理を行うか否かを判断する手段を備えることを特徴とする請求項
4ないし
6の何れか1項に記載の画像処理装置。
【請求項8】
更に、
撮像装置により撮像されたフレーム画像を取得する手段を備えることを特徴とする請求項1ないし
7の何れか1項に記載の画像処理装置。
【請求項9】
前記検出手段は、前記第1フレーム画像における探索領域から検出した被写体の特定部位もしくは該特定部位の特徴量を前記撮像装置に送信して該撮像装置に該特定部位に対するAF処理およびズーム処理
の少なくともいずれかを行わせることを特徴とする請求項
8に記載の画像処理装置。
【請求項10】
第1フレーム画像における探索領域から被写体を検出する前に該被写体の特定部位を検出する検出工程と、
前記検出工程による前記特定部位の検出の後、前記第1フレーム画像における前記被写体の追尾処理を行う処理工程と
、
前記第1フレーム画像における探索領域と、前記第1フレーム画像に先行するフレーム画像における追尾処理の結果と、前記第1フレーム画像における追尾処理の結果と、に基づいて、前記第1フレーム画像に後続する第2フレーム画像における探索領域を特定する特定工程と
を備えることを特徴とする画像処理方法。
【請求項11】
コンピュータを、請求項1ないし
9の何れか1項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体の追尾技術に関するものである。
【背景技術】
【0002】
従来から、動画像中のフレーム画像から特定の被写体を検出する技術が知られており、例えば、特定の人物や物体を検出する機能を搭載した監視カメラや、被写体に自動的に焦点を合わせるオートフォーカス(AF)機能を搭載した電子カメラが実現されている。
【0003】
さらに、被写体の特定部位を検出する技術も知られている。このような技術は例えば、特定の挙動を示す自動車を被写体に定めた後にナンバープレートやフロントガラスなどを検出してズームすることで防犯に利用したり、被写体の人物や動物の瞳にピンポイントでフォーカスを合わせる、といった様々な用途が考えられる。
【0004】
特許文献1では、被写体が人物であり、特定部位が顔の器官である場合、被写体の顔領域を検出した後に該顔領域を拡大することにより、瞳のような小さく映った特定部位を精度良く検出する技術が提案されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1のように、動画像から被写体の特定部位を精度良く検出しようとすると、最初に被写体を検出してから特定部位を検出するため、フレーム画像を取得してから特定部位を検出するまでに複数回の検出処理を行うことになる。これにより、フレーム画像を取得してから特定部位を検出するまでの時間的な遅延(レイテンシー)が大きくなってしまう。このような状況では、例えば、電子カメラのAF機能において、移動している被写体の特定部位の検出結果と、検出時の実際の位置とのズレが大きくなってしまうため、AFが合わないといった問題が生じる。
【0007】
本発明は、フレーム画像を取得してから被写体の特定部位を検出するまでの時間を従来よりも減少させるための技術を提供する。
【課題を解決するための手段】
【0008】
本発明の一様態は、第1フレーム画像における探索領域から被写体を検出する前に該被写体の特定部位を検出する検出手段と、
前記検出手段による前記特定部位の検出の後、前記第1フレーム画像における前記被写体の追尾処理を行う処理手段と、
前記第1フレーム画像における探索領域と、前記第1フレーム画像に先行するフレーム画像における追尾処理の結果と、前記第1フレーム画像における追尾処理の結果と、に基づいて、前記第1フレーム画像に後続する第2フレーム画像における探索領域を特定する特定手段と
を備えることを特徴とする。
【発明の効果】
【0009】
本発明の構成によれば、フレーム画像を取得してから被写体の特定部位を検出するまでの時間を従来よりも減少させることができる。
【図面の簡単な説明】
【0010】
【
図1】画像処理装置1の機能構成例を示すブロック図。
【
図2】部位検出部103と追尾部104の実行順序の一例を示すタイムチャート。
【
図3】部位検出部103の動作を示すフローチャート。
【
図4】フレーム画像からの特定部位の検出を説明する図。
【
図6】領域算出部105の動作を示すフローチャート。
【
図7】部位検出部103の動作を示すフローチャート。
【
図8】フレーム画像から被写体および特定部位の検出を説明する図。
【
図9】領域算出部105の動作を示すフローチャート。
【
図10】画像処理装置10の機能構成例を示すブロック図。
【
図11】判断部1001の動作を示すフローチャート。
【
図12】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
[第1の実施形態]
本実施形態では、屋外に設置された監視カメラで撮像された「特定の挙動(例えば走行速度超過)を示す自動車」を被写体として追尾し、追尾中の被写体である自動車のナンバープレートを特定部位として検出する監視カメラシステムについて説明する。
【0013】
また、以下では、監視カメラによって撮像されるフレーム画像の取得時刻をtで表し、該監視カメラから最初(1番目)に取得されるフレーム画像の取得時刻tは1とする。また、監視カメラから取得した着目フレーム画像の取得時刻tがTであるとすると、該着目フレーム画像の1つ前(先行する)に取得したフレーム画像の取得時刻tは(T-1)と表し、該着目フレーム画像の1つ後(後続する)に取得したフレーム画像の取得時刻tは(T+1)と表す。
【0014】
まず、本実施形態に係る監視カメラシステムにおいて、監視カメラにより撮像されたフレーム画像中の被写体を追尾する画像処理装置1の機能構成例について、
図1のブロック図を用いて説明する。
【0015】
初期位置検出部101は、取得時刻t=1、2に対応するフレーム画像における被写体および該被写体の特定部位を検出することで、該フレーム画像における被写体の位置および該被写体の特定部位の位置を検出する。また初期位置検出部101は、被写体が監視カメラの視界から消えた後に再び該視界に入ったときには、該被写体がフレーム画像中に再登場するので、該被写体が再登場したフレーム画像(取得時刻t=1のフレーム画像と称する)および該フレーム画像に隣接して後続するフレーム画像(取得時刻t=2のフレーム画像と称する)から被写体および該被写体の特定部位を検出することで、該フレーム画像における被写体の位置および該被写体の特定部位の位置を検出する。
【0016】
なお、フレーム画像から被写体および該被写体の特定部位を検出する方法としては、例えば、フレーム画像における設定領域を通過する自動車を被写体として検出し、精度の良い公知の物体検知技術で該被写体の特定部位を検出するといった方法が考えられる。
【0017】
領域抽出部102は、現フレーム画像について領域算出部105が算出した探索領域内の画像をクロップ画像として抽出する。
【0018】
部位検出部103は、領域抽出部102によって抽出されたクロップ画像から被写体の特定部位を検出する。なお、部位検出部103は、現フレーム画像におけるクロップ画像からの特定部位の検出処理を、現フレーム画像に対する追尾部104の処理結果を待たずに実行する。部位検出部103によるクロップ画像からの特定部位の検出処理について、
図3のフローチャートに従って説明する。
【0019】
ステップS301では、部位検出部103は、領域抽出部102により抽出されたクロップ画像を取得する。
図4(a)は現フレーム画像401を示しており、
図4(b)は、現フレーム画像401から領域抽出部102が抽出したクロップ画像402を示している。
【0020】
ステップS302では、部位検出部103は、クロップ画像における特定部位の領域を推定する。クロップ画像における特定部位の領域を推定する技術としては、例えば、機械学習や深層学習、テンプレートマッチング、特徴点マッチングを用いた技術がある。
【0021】
深層学習を用いた方法では、特定部位を含んだ画像と、画像における特定部位の領域を表すアノテーションデータのペアの集合で構成される学習データを用いて、多層からなるニューラルネットワークを学習させた学習モデルを事前に生成しておく。このような学習モデルを用いることにより、未知の画像に対して特定部位の領域(例えば位置とサイズ(縦サイズおよび横サイズ))を推定することができる。更に、計算負荷を抑えながら比較的高精度に推論を行うため、ニューラルネットワークモデルを軽量化する。
【0022】
本実施形態では、このようにして事前に生成した学習モデルを用いて、クロップ画像における特定部位の位置とサイズ(縦サイズおよび横サイズ)を推定する。
図4(c)は、上記の学習モデルに上記のクロップ画像402を入力することで該学習モデルから得られる尤度マップ403を示している。尤度マップ403における位置(x、y)のブロックには、クロップ画像402における位置(x、y)の領域(該ブロックに対応する領域)における「特定部位が存在する確からしさ(尤度)」が格納されている。
図4(c)では、尤度の高低を濃淡で示している。以下では、尤度マップ403における位置(x、y)の尤度をS(x,y)と表す。尤度マップは尤度S(x,y)を適切な変換により画素値に対応付けることで、画像のように取り扱うことができる。以下では、ステップS302で部位検出部103は、クロップ画像から尤度マップを生成したものとして説明する。
【0023】
次に、ステップS303では、部位検出部103は、尤度マップに対してフィルタリング処理を行う。
図4(d)は、尤度マップ403に対してフィルタリング処理を行ったことで得られるフィルタリング処理済み尤度マップ404の一例を示している。このフィルタリング処理について、
図5を用いて説明する。
【0024】
まず、取得時刻t=(T-1)のフレーム画像に対応する尤度マップ501から尤度の重心位置と分散を計算する。そして、該重心位置を中心として該分散に応じたサイズの範囲外をフィルタリングするためのガウシアンフィルタ502を生成する。そして、取得時刻t=Tのフレーム画像に対応する尤度マップ503とガウシアンフィルタ502との積を取ることにより、特定部位以外の領域がフィルタリングされたフィルタリング処理済み尤度マップ504を生成する。
【0025】
ステップS304では、部位検出部103は、ステップS303で求めたフィルタリング処理済み尤度マップ(404,504)に対して、例えば、NMS(Non-maximum Suppression)アルゴリズムを適用して、尤度が高い領域から適切に選び、該選んだ領域に対応するクロップ画像中の領域を「クロップ画像における特定部位の領域」とする。
図4(e)は、「クロップ画像における特定部位の領域」に対応する現フレーム画像401における領域405(つまり現フレーム画像401における特定部位の領域)を示している。
【0026】
ステップS305では、部位検出部103は、ステップS304で特定した「クロップ画像における特定部位の領域」に対応する現フレーム画像中の領域を「特定部位の検出領域」(検出結果)として出力する。
【0027】
図1に戻って、追尾部104は、現フレーム画像から被写体となる自動車を追尾する追尾処理を行う。なお、「現フレーム画像に対する追尾処理」は、部位検出部103が動作する場合には、現フレーム画像に対する部位検出部103の処理と並行して行われるか、若しくは現フレーム画像に対する部位検出部103の処理よりも後に行われる。
【0028】
ここで、現フレーム画像から被写体となる自動車を追尾する追尾処理は、例えば、背景差分やオプティカルフローを用いた方法、カルマンフィルタやパーティクルフィルタ等のベイズフィルタを用いた方法、機械学習や深層学習を用いた方法、テンプレートマッチングや特徴点マッチングを用いた方法等、様々な方法を用いて行うことができる。本実施形態では、何れかの公知の方法を用いて自動車を追尾するものとし、詳細については説明を省略する。
【0029】
そして追尾部104は、現フレームに対する追尾処理の結果として、現フレーム画像中の被写体を囲む矩形領域の位置およびサイズ(縦サイズおよび横サイズ)を出力する。なお、現フレーム画像中の被写体を囲む矩形領域を特定することができる情報であれば、追尾部104は如何なる情報を「追尾処理の結果」として出力しても良い。
【0030】
なお、追尾部104による追尾処理の結果は、次の取得時刻のフレーム画像における探索領域の決定に用いられることから、次の取得時刻のフレーム画像を取得する前に完了している程度に、該追尾処理の処理負荷は小さいことが望ましい。追尾処理が次の取得時刻のフレーム画像の取得までに間に合わない場合は、例えば、処理を1フレームずつスキップする等で周期的に実行するようにしてもよい。このようにすることで、追尾処理は次の取得時刻でフレーム画像を取得してから検出処理を行うまでの処理時間に影響を与えないで済む。
【0031】
ここで、部位検出部103と追尾部104の実行順序の一例について、
図2のタイムチャートを用いて説明する。なお、
図2には以下の説明に関連する部分について図示している。
【0032】
取得時刻t=1および取得時刻t=2では、被写体および該被写体の特定部位を正確に定める必要があるため、初期位置検出部101は被写体を検出した後に、該被写体の特定部位を検出する。
【0033】
取得時刻t=3以降のフレーム画像では、被写体の特定部位を検出した後に被写体の追尾処理を行う。これにより、監視カメラであれば、追尾処理の前に特定部位の検出結果を利用したAF処理および/またはズーム処理を行うことができ、それらの処理のレイテンシーを抑制することができる。
【0034】
よって、部位検出部103は、被写体の特定部位を検出すると、該検出した特定部位もしくは該特定部位の特徴量を監視カメラに送信し、該監視カメラに該特定部位に対するAF処理および/またはズーム処理を行わせても良い。これにより、追尾部104は、特定部位に対するAF処理やズーム処理を行った後のフレーム画像に対して該特定部位に対する追尾処理を行うことができる。
【0035】
領域算出部105では、現フレーム画像における探索領域もしくは初期位置検出部101が検出した被写体の領域と、追尾部104による追尾処理の結果と、に基づいて「現フレーム画像の取得時刻の次の取得時刻のフレーム画像における探索領域」を算出する。領域算出部105による探索領域の算出について、
図6のフローチャートに従って説明する。
【0036】
ステップS601では、領域算出部105は、追尾部104による追尾処理の結果(現フレーム画像における追尾処理の結果、該現フレーム画像よりも1つ前の取得時刻における追尾処理の結果)を取得する。
【0037】
ステップS602では、領域算出部105は、現フレーム画像が取得時刻t=2のフレーム画像である場合は、該現フレーム画像について初期位置検出部101が検出した被写体の領域の重心位置(Xc,Yc)を求める。一方、領域算出部105は、現フレーム画像が取得時刻t=3以降の取得時刻のフレーム画像である場合は、該現フレーム画像について領域算出部105が算出した探索領域の重心位置(Xc,Yc)を求める。
【0038】
ステップS603では、領域算出部105は、フレーム画像間における被写体の動きV(Δx、Δy)を求める。例えば、領域算出部105は、現フレーム画像よりも1つ前の取得時刻における追尾処理の結果(現フレーム画像よりも1つ前の取得時刻におけるフレーム画像における被写体を囲む矩形領域の位置)から、現フレーム画像における追尾処理の結果(現フレーム画像における被写体を囲む矩形領域の位置)への動きベクトルV1をV(Δx、Δy)として求めても良い。また例えば、領域算出部105は、現フレーム画像よりも1つ前の取得時刻におけるフレーム画像における特定部位の重心位置から、現フレーム画像における特定部位の重心位置への動きベクトルV2(Δx、Δy)をV(Δx、Δy)として求めても良い。また例えば、領域算出部105は、動きベクトルV1と動きベクトルV2との平均ベクトルをV(Δx、Δy)として求めても良い。
【0039】
ステップS604では、領域算出部105は、「現フレーム画像の取得時刻の次の取得時刻のフレーム画像における探索領域」の重心位置を(Xc+Δx,Yc+Δy)として求める。
【0040】
ステップS605では、領域算出部105は、「現フレーム画像の取得時刻の次の取得時刻のフレーム画像における探索領域」のサイズ(縦サイズおよび横サイズ)を決定する。例えば、領域算出部105は、事前に特定部位を囲む領域の1辺の長さに対して検出率が最大となる探索領域の1辺の長さLを求めておき、「現フレーム画像の取得時刻の次の取得時刻のフレーム画像における探索領域」のサイズを長さLに決定する。なお、「現フレーム画像の取得時刻の次の取得時刻のフレーム画像における探索領域」のサイズ(縦サイズおよび横サイズ)の決定方法は特定の決定方法に限らない。例えば、被写体の特定部位の動きを考慮し、該動きがより大きいほど、探索領域のサイズをより大きくするようにしてもよく、その場合、フレーム画像からの被写体や特定部位のロストを抑制することができる。
【0041】
このように、本実施形態では、フレーム画像から1度の検出処理で被写体の特定部位を検出し、該検出の後に該被写体の追尾を行う。これにより、従来技術のように、被写体の特定部位を検出するまでに複数回の検出処理または追尾処理の実行を行う場合と比べて、フレーム画像の取得から特定部位の検出結果を用いた別の処理を行うまでのレイテンシーを抑制することができる。このようにすることで、例えば、自動車が監視カメラの視界を通過する前に、特定部位であるナンバープレートへのAFやズームアップを高速に実行でき、特定部位の詳細をより正確に捉えることができるようになる。
【0042】
[第2の実施形態]
本実施形態を含む以下の各実施形態では、第1の実施形態との差分について説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態では、電子カメラで撮影される特定の人物を被写体とし、該人物の瞳を特定部位(第1の部位)として検出し、更に、該人物の瞳を内包する顔を第2の部位として検出するようなカメラシステムについて説明する。
【0043】
このようなカメラシステムにも、
図1に示した構成を有する画像処理装置1が適用可能であるが、本実施形態では、部位検出部103および領域算出部105の動作が第1の実施形態と異なる。
【0044】
本実施形態に係る部位検出部103の動作について、
図7のフローチャートに従って説明する。
【0045】
ステップS701では、部位検出部103は、領域抽出部102により抽出されたクロップ画像を取得する。
図8(a)は現フレーム画像801を示しており、
図8(b)は、現フレーム画像801から領域抽出部102により抽出されたクロップ画像802を示している。
【0046】
ステップS702では、部位検出部103は、クロップ画像における第1の部位および第2の部位の領域を推定する。本実施形態でも、第1の実施形態と同様に深層学習を用いて学習した学習モデルを用いる。
【0047】
深層学習を用いた方法では、第1の部位と第2の部位を含んだ画像と各部位の存在領域を表すアノテーションデータのペアの集合を学習データとして用意する。この学習データを用いて、畳み込み層などの多層からなるニューラルネットワークを事前に学習させた学習モデルを生成しておくことにより、未知の画像に対して第1の部位および第2の部位の存在領域(例えば位置とサイズ)を推定することができる。
【0048】
更に、ここではマルチタスク学習により、第1の部位と第2の部位を1つのニューラルネットワークモデルで学習する。この学習方法では、1つの部位を推定するときと同等の処理速度で複数の部位を推定することができる。
【0049】
本実施形態では、部位検出部103はステップS702において、このようにして事前に生成した学習モデルを用いて、第1の部位および第2の部位のそれぞれに対応する尤度マップを出力する。
図8(c)において尤度マップ803は、上記の学習モデルに上記のクロップ画像802を入力することで該学習モデルから得られる第1の部位の尤度マップである。また、尤度マップ804は、上記の学習モデルに上記のクロップ画像802を入力することで該学習モデルから得られる第2の部位の尤度マップである。
【0050】
尤度マップ803における位置(x、y)のブロックには、クロップ画像802における位置(x、y)の領域における「第1の部位が存在する確からしさ(尤度)」が格納されている。また尤度マップ804における位置(x、y)のブロックには、クロップ画像802における位置(x、y)の領域における「第2の部位が存在する確からしさ(尤度)」が格納されている。
図8(c)では、尤度の高低を濃淡で示している。
【0051】
ステップS703では、部位検出部103は、第1の部位に対応する尤度マップに対して第1の実施形態と同様のフィルタリング処理を行う。
図8(d)は、尤度マップ803に対してフィルタリング処理を行ったことで得られるフィルタリング処理済み尤度マップ805を示している。つまり、取得時刻t=(T-1)のフレーム画像に対応する第2の部位の尤度マップから尤度の重心位置と分散を計算し、該重心位置を中心として該分散に応じたサイズの範囲外をフィルタリングするためのガウシアンフィルタを生成する。そして、取得時刻t=Tのフレーム画像に対応する第1の部位の尤度マップとガウシアンフィルタとの積を取ることにより、第1の部位以外の領域がフィルタリングされたフィルタリング処理済み尤度マップを生成する。
【0052】
このとき、顔の中心と瞳がほぼ同じ位置にあるため、第2の部位に対応する尤度マップからガウシアンフィルタを生成することが有効である。
図8(d)は、そのようにしてフィルタリング処理を適用した後の尤度マップ805を示している。
【0053】
ステップS704では、部位検出部103は、ステップS703で求めたフィルタリング処理済み尤度マップに対して、例えば、NMS(Non-maximum Suppression)アルゴリズムを適用して、最大の尤度の領域から順に最大で2つ選び、該選んだ領域に対応するクロップ画像中の領域を「クロップ画像における第1の部位の領域」として決定する。
図8(e)は、クロップ画像802における第1の部位の領域806を示している。
【0054】
ステップS705では、部位検出部103は、ステップS704で特定した「クロップ画像における第1の部位の領域」を「第1の部位の検出領域」(第1の部位の検出結果)として出力する。したがって、本実施形態においても、第1の実施形態と同等の処理量で、被写体の特定部位を検出することができる。
【0055】
ステップS706では、部位検出部103は、第2の部位に対応する尤度マップに対して第1の実施形態と同様のフィルタリング処理を行う。
図8(f)は、尤度マップ804に対してフィルタリング処理を行ったことで得られるフィルタリング処理済み尤度マップ807を示している。このとき用いるガウシアンフィルタは、ステップS703において用いたガウシアンフィルタと同じである。そして、取得時刻t=Tのフレーム画像に対応する第2の尤度マップとガウシアンフィルタとの積を取ることにより、第2の部位以外の領域がフィルタリングされたフィルタリング処理済み尤度マップを生成する。
【0056】
ステップS707では、部位検出部103は、ステップS706で求めたフィルタリング処理済み尤度マップに対して、例えば、NMS(Non-maximum Suppression)アルゴリズムを適用して、最大の尤度の領域を選び、該選んだ領域に対応するクロップ画像中の領域を「クロップ画像における第2の部位の領域」として決定する。
図8(g)は、クロップ画像802における第2の部位の領域808を示している。
【0057】
ステップS708では、部位検出部103は、ステップS707で特定した「クロップ画像における第2の部位の領域」を「第2の部位の検出領域」(第2の部位の検出結果)として出力する。
【0058】
なお、ステップS703~S705の一連の処理と、ステップS706~S708の一連の処理と、は並列して行っても良い。これにより、顔の検出も瞳と同様にレイテンシーを抑制して行うことができる。更に、瞳の検出結果よりも先に顔の検出結果が存在する場合は、顔を囲む領域の外側に存在する瞳の検出結果を除去することにより、誤検知を抑制することもできる。
【0059】
次に、領域算出部105の動作について、
図9のフローチャートに従って説明する。
図9において、
図6に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【0060】
ステップS902では、領域算出部105は、ステップS708で出力された「第2の部位の検出領域」を取得する。そしてステップS903では、領域算出部105は、「第2の部位の検出領域」の重心位置(Xc,Yc)を求める。以降は、
図6のフローチャートと同様である。
【0061】
第2の部位は第1の部位を内包するため、第1の部位よりも精度良く検出しやすく、被写体の追尾結果よりも特定部位の動きが捉えやすいため、その重心や動きの精度が安定する。したがって、次の取得時刻におけるフレーム画像における探索領域は第1の実施形態よりも安定して設定することができ、特定部位の検出精度が上がる。
【0062】
このように、本実施形態によれば、フレーム画像を取得してすぐに1度の検出処理で被写体の第1の部位および該第1の部位を内包する第2の部位を検出し、その整合性を利用することにより、特定部位の検出率が向上する。これにより、第1の実施形態と同様にフレーム画像を取得してから被写体の特定部位を検出するまでのレイテンシーが抑制されながらも、より精度良く被写体の瞳を検出することができる。
【0063】
[第3の実施形態]
本実施形態では、第2の実施形態で検出した部位の検出状況に基づき、追尾処理を実行するか否かを判断するシステムについて説明する。本実施形態に係るシステムによれば、全体の検出処理が速くなり、追尾処理に係る計算負荷を軽減することができる。
【0064】
本実施形態に係るシステムにおける画像処理装置10の機能構成例について、
図10のブロック図を用いて説明する。画像処理装置10は、上記の画像処理装置1に判断部1001を加えたものである。判断部1001の動作について、
図11のフローチャートに従って説明する。
【0065】
ステップS1101では、判断部1001は、部位検出部103により検出された「第1の部位の検出領域」と「第2の部位の検出領域」とを取得する。ステップS1102では、判断部1001は、第2の部位の尤度マップから尤度スコアS2を取得する。尤度スコアS2は、例えば、第2の部位の尤度マップにおける最大の尤度であっても良いし、第2の部位の尤度マップにおける「第2の部位の検出領域」の重心位置近傍における尤度の平均値であっても良い。
【0066】
そして判断部1001は、尤度スコアS2が閾値以上であるか否かを判断する。この判断の結果、尤度スコアS2が閾値以上(第2の部位の尤度マップにおける該第2の部位の確度が高い)であれば、処理はステップS1103に進む。一方、尤度スコアS2が閾値未満(第2の部位の尤度マップにおける該第2の部位の確度が低い)であれば、処理はステップS1105に進む。
【0067】
ステップS1103では、判断部1001は、第1の部位の尤度マップから尤度スコアS1を取得する。尤度スコアS1は、例えば、第1の部位の尤度マップにおける最大の尤度であっても良いし、第1の部位の尤度マップにおける「第1の部位の検出領域」の重心位置近傍における尤度の平均値であっても良い。
【0068】
そして判断部1001は、尤度スコアS1が閾値以上であるか否かを判断する。この判断の結果、尤度スコアS1が閾値以上(第1の部位の尤度マップにおける該第1の部位の確度が高い)であれば、処理はステップS1104に進む。一方、尤度スコアS1が閾値未満(第1の部位の尤度マップにおける該第1の部位の確度が低い)であれば、処理はステップS1105に進む。
【0069】
ステップS1104では、判断部1001は、第2の部位の尤度マップにおいて、第2の部位の重心位置から「一定値以上の尤度を示す位置」までの距離の分散σを求める。この分散σが閾値以下であれば、処理はステップS1106に進み、分散σが閾値よりも大きい場合には、処理はステップS1105に進む。
【0070】
この判断処理は、尤度マップに複数の被写体が含まれる場合は分散σが大きくなる傾向が見られるため、正しく検出できたとしても次のフレーム画像では他の被写体に誤検知されやすい可能性があることを考慮に入れている。逆に、分散σが小さい場合は周辺に被写体以外が映っていないため、特定部位の検出が容易な状態であると解釈することができる。
【0071】
ステップS1105では、判断部1001は、追尾処理は必要であると判断し、その旨を追尾部104に通知する。一方、ステップS1106では、判断部1001は、追尾処理は不要と判断し、その旨を追尾部104に通知する。
【0072】
追尾部104は、判断部1001から追尾処理が必要である旨を受けた場合には追尾処理を行い、追尾処理は不要である旨を受けた場合には追尾処理は行わない。なお、追尾部104が追尾処理を行っていない間は、領域算出部105は、最近に領域抽出部102に出力した探索領域を該領域抽出部102に出力し続ける。
【0073】
このように、本実施形態によれば、検出結果が不安定になると判断される場合に追尾処理を実行するため、処理速度が向上するとともに、画像処理装置10における計算負荷を軽減することができる。
【0074】
[第4の実施形態]
図1,10に示した各機能部はハードウェアで実装しても良いし、ソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、該コンピュータプログラムを実行可能なコンピュータ装置は、上記の画像処理装置1や画像処理装置10に適用可能である。
【0075】
このようなコンピュータ装置のハードウェア構成例について、
図12のブロック図を用いて説明する。なお、
図12に示したハードウェア構成は、画像処理装置1や画像処理装置10に適用可能なコンピュータ装置のハードウェア構成の一例であり、適宜変形/変更が可能である。
【0076】
CPU1201は、RAM1202やROM1203に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU1201は、コンピュータ装置全体の動作制御を行うと共に、画像処理装置1や画像処理装置10が行うものとして説明した上記の各処理を実行もしくは制御する。
【0077】
RAM1202は、ROM1203や記憶装置1206からロードされたコンピュータプログラムやデータを格納するためのエリア、I/F1207を介して外部から受信したデータを格納するためのエリア、を有する。さらにRAM1202は、CPU1201が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM1202は各種のエリアを適宜提供することができる。
【0078】
ROM1203には、コンピュータ装置の設定データ、コンピュータ装置の起動に係るコンピュータプログラムやデータ、コンピュータ装置の基本動作に係るコンピュータプログラムやデータ、などが格納されている。
【0079】
操作部1204は、キーボード、マウス、タッチパネルなどのユーザインターフェースであり、ユーザが操作することで各種の指示をCPU1201に対して入力することができる。
【0080】
表示部1205は、液晶画面やタッチパネル画面を有する装置であり、CPU1201による処理結果を画像や文字などでもって表示することができる。例えば、表示部1205には、フレーム画像や、該フレーム画像における被写体や特定部位(第1の部位や第2の部位)を明示的にユーザに通知するための表示アイテムを表示することができる。また、表示部1205は、画像や文字を投影するプロジェクタなどの投影装置であっても良い。
【0081】
記憶装置1206は、ハードディスクドライブ装置などの不揮発性メモリである。記憶装置1206には、OS、画像処理装置1/10が行うものとして上述した各処理をCPU1201に実行もしくは制御させるためのコンピュータプログラムやデータが保存されている。記憶装置1206に保存されているコンピュータプログラムやデータは、CPU1201による制御に従って適宜RAM1202にロードされ、CPU1201による処理対象となる。
【0082】
I/F1207は、外部とのデータ通信を行うための通信インターフェースであり、例えば、上記の監視カメラや電子カメラなどの撮像装置によって撮像されたフレーム画像はI/F1207を介してRAM1202や記憶装置1206に格納される。
【0083】
上記のCPU1201、RAM1202、ROM1203、操作部1204、表示部1205、記憶装置1206、I/F1207は何れもシステムバス1208に接続されている。
【0084】
なお、上記の各実施形態では、フレーム画像を撮像する撮像装置(監視カメラ、電子カメラなど)と画像処理装置1/10とは別個の装置としていた。しかし、該撮像装置と該画像処理装置1/10とを一体化させて1台の装置(撮像機能付きの画像処理装置)を構成しても良い。
【0085】
また、領域算出部105は、取得時刻t=1のフレーム画像における追尾処理の結果(被写体を囲む矩形領域)を拡大率Rに従って拡大した拡大領域を「取得時刻t=2のフレーム画像における探索領域」として生成するようにしても良い。拡大率Rは、例えば、被写体の移動速度が高いほど大きくする。そして上記のステップS602では、領域算出部105は、現フレーム画像が取得時刻t=2以降の取得時刻のフレーム画像である場合は、該現フレーム画像について領域算出部105が算出した探索領域の重心位置(Xc,Yc)を求める。
【0086】
また、上記の各実施形態で使用した数値、処理タイミング、処理順、データ(情報)の送信先/送信元などは、具体的な説明を行うために一例として挙げたものであり、このような一例に限定することを意図したものではない。
【0087】
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【0088】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0089】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0090】
1:画像処理装置 101:初期位置検出部 102:領域抽出部 103:部位検出部 104:追尾部 105:領域算出部