本実施形態に係る画像処理装置は、撮影装置によって撮影した連続する画像における複数の推定領域の各々に対して、人の属性情報(性別や年齢)を推定する属性推定を行う画像処理装置である。
以下、添付図面を参照しながら本発明の実施形態について説明する。なお、以下の実施形態において示す構成は一例に過ぎず、図示された構成に限定されるものではない。
(本実施形態)
図1は、本実施形態に係るシステム構成を示す図である。画像処理装置100は、後述する画像処理を実行する装置である。なお、画像処理装置100は、例えば、後述する画像処理の機能を実現するためのプログラムがインストールされたパーソナルコンピュータなどによって実現される。
表示装置101は、画像処理装置100に接続され、後述する画像処理により出力されるデータやUI(user interface)などをユーザーが閲覧するための表示装置である。
撮影装置102は、画像を撮影する装置であり、パン・チルト・ズーム(Pan−Tilt−Zoom、以下「PTZ」と称す)制御可能に構成されている。また、撮影装置102は、例えば、ネットワークを介して画像の画像データなどを送信できるネットワークカメラなどである。
記録装置103は、撮影装置102で撮影された画像の画像データなどを記録することができる装置である。また、画像処理装置100、撮影装置102、および記録装置103は、ネットワーク104を介して通信を行う。ネットワーク104は、例えばEthernet(商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される。本実施形態においては画像処理装置100、撮影装置102、記録装置103間の通信を行うことができるものであればその通信規格、規模、構成を問わない。例えば、ネットワーク104はインターネットや有線LAN(Local AreaNetwork)、無線LAN(Wireless LAN)、WAN(Wide Area Network)等により構成されてもよい。
また、図1の構成では、撮影装置102により撮影された画像の画像データ(ライブ映像)や記録装置103にて記録された画像データ(過去に撮影した画像)などが画像処理装置100に送信される。
次に、図12を参照して、本実施形態の後述する各機能を実現するための画像処理装置100のハードウェア構成を説明する。RAM(Random Access Memory)1201は、CPU(Central Processing Unit)1200が実行するコンピュータプログラムを一時的に記憶する。また、RAM1201は、通信インターフェース1203を介して外部から取得したデータ(コマンドや画像データ)などを一時的に記憶する。また、RAM1201は、CPU1200が後述の画像処理を実行する際に用いるワークエリアを提供する。また、RAM1201は、例えば、フレームメモリとして機能したり、バッファメモリとして機能したりする。
CPU1200は、RAM1201に格納されるコンピュータプログラムを実行する。なおCPU以外にも、DSP(Digital Signal Processor)等のプロセッサやASIC(Application Specific Integrated Circuit)を用いてもよい。
HDD(Hard Disk Drive)1202は、オペレーティングシステムのプログラムや画像データを記憶する。
後述する図5や図9のフローチャートを実行するためのコンピュータプログラムやデータはHDD1202に格納されており、CPU1200による制御に従って、適宜、RAM1201にロードされ、CPU1200によって実行される。HDD以外にもフラッシュメモリ等の他の記憶媒体を用いてもよい。
次に、図2および図3を参照して、撮影装置102について説明する。図2は、本実施形態に係る撮影装置102の外観図である。また、図3は、本実施形態に係る撮影装置102の機能ブロック図である。
レンズ202の光軸の向く方向が撮影装置102の撮影方向であり、レンズ202を通過した光束は、撮影部205の撮像素子に結像する。なお、レンズ202は、フォーカスレンズ及びズームレンズ等を備える。また、レンズ駆動部210は、フォーカスレンズ及びズームレンズなどの駆動系を含み、レンズ202の焦点距離を変更する。レンズ駆動部210は、パンチルトズーム制御部208により制御される。
パン駆動部200は、パン動作を行うメカ駆動系及び駆動源のモータを含み、撮影装置102の撮影方向をパン方向203に変更するように駆動する。また、パン駆動部200は、パンチルトズーム制御部208により制御される。
チルト駆動部201は、チルト動作を行うメカ駆動及び駆動源のモータを含み、撮影装置102の撮影方向をチルト方向204に変更するように駆動する。チルト駆動部201は、パンチルトズーム制御部208により制御される。
撮影部205は、CCD(charge coupled device)センサやCMOS(complementary metal oxide semiconductor)センサ等の撮像素子を有する。そして、撮影部205は、レンズ202を通って結像された被写体像を光電変換して電気信号を生成する。
画像処理部206は、撮影部205において光電変換された電気信号をデジタル信号へ変換する処理や、圧縮符号化処理などを行い、画像データを生成する。
パンチルトズーム制御部208は、システム制御部207から伝達された指示に基づいて、パン駆動部200、チルト駆動部201及びレンズ駆動部210の制御を行う。
通信部209は、画像処理装置100との通信を行うインターフェースである。例えば、通信部209は、生成された画像データを画像処理装置100に送信する。また、通信部209は、画像処理装置100から送信された撮影装置102のパン・チルト・ズーム動作などを制御する制御コマンドを受信し、システム制御部207へ伝達する。また、通信部209は、有線LANインターフェースや無線LANインターフェースを有する。
システム制御部207は、撮影装置102の全体を制御し、例えば、次のような処理を行う。すなわち、システム制御部207は、通信部209から伝達された制御コマンドを解析し、解析した内容に基づく処理を行う。例えば、システム制御部207は、パンチルトズーム制御部208に対してパン・チルト・ズーム動作の指示を行う。
なお、パン角度は、パン駆動部200の駆動端の一方を0°としたときの、撮影装置102のパン方向203における撮影方向(光軸)の角度である。また、チルト角度は、チルト駆動部201の駆動端の一方を0°としたときの、撮影装置102のチルト方向204における撮影方向(光軸)の角度である。
次に、図4を参照して、本実施形態に係る画像処理装置100について説明する。図4は、本実施形態に係る画像処理装置の機能ブロック図である。なお、図4に示す各機能ブロックは、ソフトウェアモジュールで実現してもよいし、ハードウェアモジュールで実現してもよい。また、ソフトウェアモジュールとハードウェアモジュールを協働させて実現してもよい。なお、以降の説明では画像処理装置100が有する各機能は、画像処理装置100のCPU1200により実行されるものとする。
本実施形態に係る画像処理装置100は、通信部400と、検出領域設定部401と、操作受付部402と、検出部403と、推定領域決定部404と、コマンド管理部405と、属性推定部406と、出力制御部407と、記憶部408と、を有する。
通信部400は、撮影装置102により撮影された画像の画像データの受信や、撮影装置102のパン・チルト・ズームを制御する制御コマンドなどを送信するための通信を行う。また、通信部400は、例えば、記録装置103に記憶された画像データ、または他の外部装置のストレージデバイスに記憶された画像データなどを各装置からネットワーク104を介して送信してもらい受信する。
検出領域設定部401は、通信部400を介して得られた画像において、検出部403が処理を行う対象とする領域である検出領域を設定する。なお、操作受付部402を介して、ユーザーにより設定された画像内の領域を検出領域として設定してもよいし、事前に設定された所定の領域を検出領域としてもよい。なお、ユーザーによる検出領域の指示や、事前に設定された領域がなければ、通信部400を介して得られた画像データが示す画像全体を検出領域としてもよい。
操作受付部402は、マウス、キーボードなどの入力装置(不図示)を介して、ユーザーにより行われた操作を受け付ける。本実施形態における操作受付部402は、例えば、出力制御部407により表示装置101に出力された画像に対して、ユーザーが入力装置を介して設定した検出領域の位置の情報を受け付ける。
検出部403は、通信部400を介して得られた画像において検出領域に含まれる複数の人の検出を行う。なお、本実施形態に係る検出部403は、学習画像から人体の特徴量(Haar−Like特徴量、HOG特徴量など)が学習されたうえで作成された識別器を保持している。そして、検出部403は、学習の結果である識別器に画像が入力され、該画像から人体の検出を行う。なお、本実施形態における検出部403は、人の体を検出する人体検出を行うとして説明するが、これに限定されない。例えば、検出部403は、人の顔を検出する顔検出や人の頭部を検出する頭部検出であってもよい。なお、以降の説明において、人体は人の全身のことであり、人の顔や胴体を含むものとする。
推定領域決定部404は、検出部403における検出の結果に基づいて、検出部403により検出した複数の人のうち少なくとも1人を含む推定領域を複数決定する。推定領域に含まれる人が、属性推定部406により属性情報を推定される対象となる。なお、推定領域の位置に関する情報は記憶部408にて記憶される。
コマンド管理部405は、推定領域決定部404において決定された複数の推定領域の各々について、順次撮影されるよう撮影装置102を制御するための制御コマンドを生成する。なおこのとき、1つの推定領域が撮影装置102の撮影範囲に含まれ、かつ、該推定領域に存在する人の属性情報を属性推定部404が推定できる撮影条件になるよう撮影装置102を制御する制御コマンドが生成される。またこのとき、コマンド管理部405により生成される制御コマンドは、例えば、撮影装置102のパン・チルト・ズームの少なくともいずれか1つを制御するための制御コマンドである。なお、本実施形態におけるコマンド管理部405にて生成された制御コマンドは、通信部400および通信部209を介して、撮影装置102におけるシステム制御部207へ送られ、該制御コマンドに基づいて撮影装置102の制御が行われる。
属性推定部406は、撮影装置102から得られる撮影画像の各々に対して推定領域に存在する人の属性情報を推定する。本実施形態に係る属性推定部406は、学習画像によって学習した識別器を利用して人の顔領域から属性情報(性別や年齢に関する情報)を推定する。なお、人の顔領域から属性情報を推定する際、画像に含まれる顔領域のサイズ(画素数)が小さいと属性情報を推定できない場合がある。つまり、人の顔領域から属性情報を推定する場合、最低限必要な顔領域の画素数が存在する。また、本実施形態における属性情報を人の性別に関する情報や年齢に関する情報として説明するが、これに限定されない。例えば、人種や服装、髪形などに関する情報であってもよい。
出力制御部407は、撮影装置102から得られた画像の画像データや、属性推定部406により得られた属性情報の推定結果を表示装置101に出力する。
記憶部408は、検出領域や推定領域の位置に関する情報などを記憶する。
以上のように、推定領域に存在する人の属性情報を属性推定部406が推定できる撮影条件を満たしつつ、複数の推定領域の各々について順次撮影されるよう撮像装置102を制御して、該複数の推定領域の各々に存在する人の属性情報を推定する。こうすることにより、より広い範囲を対象として複数の人の属性推定を行うことが可能となる。
次に本実施形態における画像処理について図5に示すフローチャートを参照して説明する。図5は、本実施形態に係る画像処理の流れを示すフローチャートである。なお、図5に示すフローチャートの処理は、主に図4に示す各機能ブロックにより実行される。また、図5に示すフローチャートの処理は、HDD1202に格納されたコンピュータプログラムに従って画像処理装置100のCPU1200により実行される。以下、画像処理装置100のCPU1200により実行される処理について説明する。
S501にて、通信部400は、撮影装置102により撮影された画像の画像データを受信する。
次に、S502にて、検出領域設定部401は、通信部400を介して得られた画像において、検出部403が画像に含まれる複数の人を検出する処理を行う対象とする領域である検出領域を設定する。本実施形態における操作受付部402は、出力制御部407により表示装置101に出力された画像に対して、ユーザーが設定した画像内の領域の位置に関する情報を受け付ける。そして、検出領域設定部401は、操作受付部402が受け付けた情報である画像内の領域の位置を検出領域の位置として設定する。なお本実施形態における検出領域の位置は、該検出領域の重心点におけるパン角度と、チルト角度と、該検出領域の画角となるズーム倍率により定められる。なお、検出領域の位置に関する情報は、記憶部408にて記憶される。
次に、S503にて、検出部403は、検出領域設定部401により設定された検出領域に含まれる複数の人体の検出を行う。このとき、検出部403は、検出領域内で検出した複数の人体各々の顔領域の画素数、および、位置情報も検出する。なお、本実施形態における検出部403は人体検出を行うが、検出した人体の画素数から顔領域の画素数を推定することができる。
次に、S504にて、検出領域に複数の人体が存在しない場合(S504で’No’)、S501の処理を行う。
S504にて、検出領域に複数の人体が存在する場合(S504で’Yes’)、S505の処理を行う。S505にて、推定領域決定部404は、検出部403の結果に基づいて、検出部403により検出した複数の人体のうち少なくとも1人を含む推定領域を複数決定する。以下図6を参照して、推定領域決定部404の処理について更に詳細に説明する。
図6は、推定領域決定部404の処理を説明するための図である。図6(a)において、画像600は、撮影装置102により撮影された画像である。検出領域601は、ユーザーにより設定された画像内における領域であり、該領域内には検出部403により検出された複数の人体が存在している。
範囲602は、属性推定部406が該範囲に含まれる人の属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した場合の撮影範囲である。この場合、範囲602は、該範囲に含まれる6人各々の属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した撮影範囲であり、該ズーム倍率以下で撮影した撮影範囲になると該6人に対して属性情報を推定できなくなる。なお、範囲602は、検出部403が検出した人の顔領域の画素数に基づいて、推定領域決定部404により決定される。例えば、属性推定部406が人の属性情報を推定するうえで必要な顔領域の画素数が縦40ピクセル以上かつ横30ピクセル以上が条件であるとする。このとき、推定領域決定部404は、検出部403により検出された人の顔領域の画素数が該条件を満たすうえでの最小ズーム倍率で撮影した撮影範囲を範囲602として決定する。
そして、推定領域決定部404は、範囲602内において範囲602の面積以下となり、かつ、検出部403により検出した複数の人のうち少なくとも1人を含む領域602aを推定領域として決定する。なおこのとき、推定領域決定部404は、範囲602に対応する推定領域である領域602aに対して、推定領域を特定するための推定領域IDである“1”を付与する。以上のように、推定領域決定部404は、検出部403が検出した人の顔領域の画素数に基づいて範囲602を決定し、該範囲602に基づいて推定領域602aを決定する。
次に、推定領域決定部404は、範囲603を決定する。範囲602と同様、範囲603は、属性推定部406が該範囲に含まれる人の属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した場合の撮影範囲である。そして、推定領域決定部404は、範囲603内において範囲603の面積以下となり、かつ、検出部403により検出した複数の人のうち少なくとも1人を含む領域である領域603bを決定する。なおこのとき、推定領域決定部404は、範囲603に対応する推定領域である領域603bに対して、推定領域IDである“2”を付与する。
次に、推定領域決定部404は、範囲604を決定する。範囲602と同様、範囲604は、属性推定部406が該範囲に含まれる人の属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した場合の撮影範囲である。そして、推定領域決定部404は、範囲604内において範囲604の面積以下となり、かつ、検出部403により検出した複数の人のうち少なくとも1人を含む領域である領域604cを決定する。なおこのとき、推定領域決定部404は、範囲604に対応する推定領域である領域604cに対して、推定領域IDである“3”を付与する。
次に、推定領域決定部404は、範囲605を決定する。範囲602と同様、範囲605は、属性推定部406が該範囲に含まれる人の属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した場合の撮影範囲である。そして、推定領域決定部404は、範囲605内において範囲605の面積以下となり、かつ、検出部403により検出した複数の人のうち少なくとも1人を含む領域である領域605dを決定する。なおこのとき、推定領域決定部404は、範囲605に対応する推定領域である領域605dに対して、推定領域IDである“4”を付与する。
また、推定領域決定部404は、推定領域を特定するための推定領域IDと、推定領域の位置と、推定領域内に含まれる人の属性情報を推定するために最低限必要なズーム倍率と、推定領域内に含まれる人数と、を対応付けてテーブル700に格納する。なお、図7に示すテーブル700は、推定領域決定部404によりデータが格納されるデータ構造図の一例である。
推定領域IDは、推定領域を特定すると共に、複数の推定領域の各々について順次撮影するために撮影装置を制御していく際、対象とする推定領域の順番を表す。また、推定領域の位置は、該推定領域の重心点におけるパン角度と、チルト角度と、該推定領域の画角となるズーム倍率と、により定められる。図7に示す必要ズーム倍率は、推定領域内に含まれる人の属性情報を推定するために最低限必要なズーム倍率である。例えば、推定領域IDが”1”である領域602aにおける人の属性情報を推定するために最低限必要なズーム倍率は、範囲602が撮影範囲となる場合のズーム倍率(gg)となる。このとき、ズーム倍率(gg)以下で撮影した撮影範囲になると、領域602aにおける人に対して属性推定部406は属性情報を推定できなくなる。なお、図6(e)は、推定領域決定部404により決定された複数の推定領域と、推定領域IDが付与された図である。なお、図6(e)に示される図は、出力制御部407により表示装置101に表示されてもよい。
以上のように、本実施形態における推定領域決定部404は、検出部403により検出された人の顔領域の画素数に基づいて、検出部403により検出した複数の人のうち少なくとも1人を含む推定領域を複数決定する。なお、本実施形態における推定領域決定部404は、検出領域601の左下から右方向へ走査するように推定領域を決定したが、これに限定されない。例えば、検出領域601の左上から右方向へ走査するように推定領域を決定してもよい。
なお、本実施形態における推定領域決定部404は、検出部403により検出した複数の人のうち少なくとも1人の人を含む推定領域を複数決定する際、人の顔領域が推定領域に含まれるように決定したが、これに限定されない。例えば、人の上半身が推定領域に含まれるように決定してもよい。
また、本実施形態における推定領域決定部404は、推定領域の数が少なくなるよう、範囲602、範囲603、範囲604、範囲605のそれぞれに対して一つずつ推定領域を決定するようにしたが、これに限定されない。例えば、推定領域決定部404は、範囲602において、少なくとも1人の人を含む推定領域を2つ決定してもよい。なお、推定領域決定部404が決定する推定領域の数をより少なくすることで、検出部403が検出した複数の人に対して、属性推定部406が属性情報を推定する処理を行う時間をより短くすることができる。
次に図5に示すフローチャートの説明に戻る。S506において、コマンド管理部405は、推定領域決定部404において決定された複数の推定領域の各々について、順次撮影されるよう撮影装置102を制御するための制御コマンドを生成する。なおこのとき、1つの推定領域が撮影装置102の撮影範囲に含まれ、かつ、該推定領域に存在する人の属性情報を属性推定部406が推定できる撮影条件になるよう撮影装置102を制御する制御コマンドが生成される。
本実施形態におけるコマンド管理部405は、まず、推定領域IDが”1”である推定領域602aが撮影されるよう撮影装置を制御する。このとき、推定領域602aが撮影装置102の撮影範囲に含まれ、かつ、撮影条件として撮影装置102のズーム倍率が必要ズーム倍率以上になるように撮影装置102を制御する制御コマンドが生成される。この場合、撮影条件として撮影装置102のズーム倍率が必要ズーム倍率gg以上になるように撮影装置102を制御する制御コマンドが生成される。
なお、本実施形態におけるコマンド管理部405は、撮影装置102が撮影する撮影画像の重心と推定領域の重心とが略同一となるよう制御コマンドを生成してもよい。こうすることにより、撮影された画像の周縁部に歪みがある場合であっても、推定領域においては歪みを減らすことができ、属性情報を推定する精度をさらに向上させることができる。
次に、S507において、属性推定部406は、撮影装置102から得られる撮影画像に対して推定領域に存在する人の属性情報を推定する。この場合、推定領域602aに存在する人の属性情報を推定する。
なお、S507にて、属性推定部406が一つの推定領域に存在する人の属性情報を推定する際、所定時間(例えば5秒など)が経過するとS508の処理に移行するようにしてもよい。
なお、属性推定部406が、撮影装置102から得られる撮影画像における推定領域に存在する人の属性情報を推定する際に、他の推定領域に存在する人が該撮影画像に映る場合がある。例えば、図6(c)において、推定領域604cにおける人を対象に属性情報を推定するために範囲604と位置および大きさが略同一の撮影範囲で撮影したときの撮影画像が得られた場合を想定する。このとき、該撮影画像には、すでに属性情報の推定を行った推定領域602aにおける人が3人含まれている。このとき、属性推定部406は、重複して属性情報を推定しないよう次のような処理を行う。例えば、属性推定部406は、撮影画像604から推定領域604cを切り出し、切り出された推定領域604cの画像に含まれる人を対象として属性情報の推定を行う。または、属性推定部406により属性情報の推定がなされた人の位置情報を記憶部408は記憶しておいてもよい。そして、例えば、該撮影画像における推定領域604cの属性情報を推定する際に、記憶部408に記憶された位置情報から、すでに属性情報の推定がなされた人は処理対象から除外するようにしてもよい。
次に、S508において、属性推定部406が属性情報を推定していない推定領域が存在する場合(S508にて’No’)、S506およびS507における処理を繰り返す。本実施形態の場合、推定領域ID”2”、推定領域ID”3”、推定領域ID”4”、の順番でS506およびS507における処理を繰り返す。
次に、S508において、属性推定部406が属性情報を推定していない推定領域が存在しない場合(S508にて’Yes’)、処理を終了する。
以上のように、本実施形態では、複数の推定領域の各々について順次撮影されるよう撮影装置102を制御して、該複数の推定領域の各々に存在する人の属性情報を推定する。こうすることにより、属性推定が行えるように画角を変更しつつ、より広い範囲を対象として複数の人の属性推定を行うことが可能となる。
次に図8を参照し、本実施形態に係る画像処理の結果の出力を示す。図8は、本実施形態に係る画像処理の結果が、出力制御部407により表示装置101に出力された表である。
例えば、10:00から11:59の時間において、図5に示すS507にて、属性推定部406が推定領域602aにおける人に対して属性情報を推定した際、1人の人が25歳の男性と推定されると、男性の20〜29にカウント数に1プラスされる。同様に、S507にて、属性推定部406が推定領域602aにおける1人の人に対して30歳の女性と推定した場合、女性の30〜39のカウント数に1がプラスされる。このように、図5に示すS507における処理において、人の属性情報を推定するたびに、表示装置101に表示されるグラフにリアルタイムでカウントをプラスしてもよい。また、図5に示す本実施形態に係る画像処理が終了したのち、属性情報の推定結果を表示装置101に出力するようにしてもよい。
なお、本実施形態では、所定の時間間隔において、属性推定部406が推定した属性情報毎に人の総数をグラフとして出力するが、これに限定されない。例えば、推定領域ID毎に、属性推定部406が推定した結果を集計してもよい。
また、所定の時間間隔において、属性推定部406が属性情報を推定した人の総数とともに、例えば、検出部403により検出された人の数も出力するようにしてもよい。これにより、ユーザーは検出部403により検出された人の人数に対して、何人の属性情報の推定がなされたかを把握することができる。なお、推定領域ID毎に、属性情報が推定された人数と検出部403により検出された人数とを表示されるようにしてもよい。
なお、本実施形態におけるS502にて、検出領域設定部401が、通信部400を介して得られた画像内に検出領域を設定したのち、該検出領域を対象として撮影装置102の画角を変更するように撮影装置102が制御されてもよい。例えば、図6(a)に示す画像600に対してユーザーが検出領域601を設定したのち、コマンド管理部405は、検出領域601が撮影装置102の撮影範囲に含まれるようにしつつ、撮影装置のズーム倍率を上げて画角を変更するようにしてもよい。こうすることにより、S503における検出部403による検出の精度をさらに向上させることが可能になる。
また、本実施形態では、推定領域ID“1”、“2”、“3”、“4”の順番で複数の推定領域を順次撮影するように撮影装置102を制御したが、これに限定されない。例えば、次のような処理を行ってもよい。
S503にて、検出部403は検出領域601に含まれる人の検出を行う際、人の顔を検出する顔検出を行い、さらに、人の属性情報を推定しやすいかの指標である検出スコアを人の顔領域ごとに出力する。なお、検出スコアが高いほど人の顔領域に対して属性情報が推定されやすいことを表しており、例えば、顔検出により得られた顔の向きが正面に近いほど検出スコアが高くなるように出力される。
S504にて、検出領域に複数の顔領域が存在する場合、検出領域に複数の人体が存在するとみなし、S505の処理へ移行する。S505にて、推定領域決定部404は、検出部403の結果に基づいて、検出部403により検出した複数の人のうち少なくとも1人を含む推定領域を複数決定する。さらに推定領域決定部404は、検出部403により出力された検出スコアを推定領域毎に合算する。
そして、推定領域毎に合算された検出スコアが高い順番に従って、複数の推定領域の各々についてS506およびS507の処理を行ってもよい。例えば、合算された検出スコアが推定領域ID“2”、“3”、“1”、“4”の順番で高い場合、該順番に従ってS506およびS507の処理が行われてもよい。このように、検出スコアの高い推定領域を優先して撮影するように撮影装置102を制御することで、正面を向いている人が多い推定領域に対して優先的に属性推定が実行され、効率的に属性情報を推定できるようになる。
また、複数の推定領域の各々についてS506およびS507の処理が行われる際、次のような順番で行われてもよい。
S503にて、検出部403は検出領域601に含まれる人の検出を行う際、人の顔を検出する顔検出を行い、さらに、検出スコアを人の顔領域ごとに出力する。
S504にて、検出領域に複数の顔領域が存在する場合、検出領域に複数の人体が存在するとみなし、S505の処理へ移行する。S505にて、推定領域決定部404は、検出部403の結果に基づいて、検出部403により検出した複数の人のうち少なくとも1人を含む推定領域を複数決定する。さらに推定領域決定部404は、検出部403により出力された検出スコアを推定領域毎に合算する。
そして、合算された検出スコアが最も高い推定領域に対して、S506およびS507の処理を行う。このとき、推定領域ID“2”に対応する推定領域603bにて合算された検出スコアが最も高いと想定し、該推定領域に対してS506およびS507の処理が行われたものとする。
その後、コマンド管理部405は、検出領域601が撮影装置102の撮影範囲に含まれるようにして、画像を撮影するよう撮影装置102を制御する制御コマンドを生成する。生成された制御コマンドに基づいて撮影装置102が制御されたのち、検出部403は検出領域601に含まれる人の顔検出を再度行い、人の顔領域ごとに検出スコアを出力し直す。
そして、推定領域決定部404は、属性推定部406により属性情報が推定されていない推定領域を対象として、検出部403により出力された検出スコアを推定領域毎に再度合算する。この場合、推定領域決定部404は、推定領域ID“1”、“3”、“4”に対応する推定領域を対象として、検出スコアを推定領域毎に合算する。そして、合算された検出スコアが最も高い推定領域に対して、S506およびS507の処理を行う。
以上のように、検出領域における人の検出スコアが繰り返し出力されていくなか、検出スコアが出力されるたびに推定領域毎に検出スコアが合算され、合算された検出スコアが最も高い推定領域に対してS506およびS507の処理を行うようにしてもよい。このように、検出スコアの最も高い推定領域を優先して撮影するように撮影装置102を制御することで、正面を向いている人がより多い推定領域に対して優先的に属性推定が実行され、より効率的に属性情報を推定できるようになる。 また、本実施形態では、図5に示すS508にて、属性推定部406が属性情報を推定していない推定領域が存在しない場合(S508にて‘Yes’)、処理を終了するとしたが、これに限定されない。推定領域決定部404により決定された複数の推定領域各々についてS506およびS507における処理を行った後、属性推定部406により属性情報が推定されなかった人が存在する推定領域に対して再度S506およびS507における処理を行ってもよい。例えば、推定領域ID”1”、”2”、”3”、”4”の順番でS506およびS507における処理を行った場合において、6人の人が存在する推定領域ID”2”の推定領域603bにおいて5人に対してのみ属性情報が推定された場合を想定する。このとき、再び推定領域ID”2”に対してS506およびS507における処理を行うようにする。こうすることにより、属性推定部406により属性情報を推定できない人がいた場合であっても、該人に対して属性推定部406により属性情報が再度推定されるようになる。
また、複数の推定領域の各々についてS506およびS507における処理を行った後、属性推定部406により属性情報が推定されなかった人を対象として、推定領域決定部404は、少なくとも1つの推定領域を再度決定するようにしてもよい。そして、推定領域決定部404により再度決定された少なくとも1つの推定領域の各々について、S506およびS507の処理を行うようにしてもよい。以下、図9および図10を参照して、推定領域を再度決定する処理について更に詳細に説明する。
図9は、推定領域を再度決定する処理を示す一連のフローチャートである。なお、図9に示すフローチャートの処理は、主に図4に示す各機能ブロックにより実行される。また、図9に示すフローチャートの処理は、HDD1202に格納されたコンピュータプログラムに従って画像処理装置100のCPU1200により実行される。以下、画像処理装置100のCPU1200により実行される処理について説明する。なお、図5と同一の機能である処理のステップには同一符号を付すとともに、機能的に変わらない処理のステップについては説明を省略する。S909において、検出部403により検出された人の全てに対して属性情報が推定されている場合(S909にて‘Yes’)、処理を終了する。S909において、検出部403により検出された複数の人すべてに対して属性情報が推定されてない場合(S909にて‘No’)、S910の処理を行う。
S910にて、推定領域決定部404は、検出部403における検出の結果に基づいて、検出部403により検出した複数の人のうち属性情報を推定できなかった人を少なくとも1人含む推定領域を少なくとも1つ決定する。なお、推定領域に含まれる人が、属性推定部406により属性情報を推定される対象となる。また、推定領域の位置に関する情報は記憶部408にて記憶される。以下図10を参照して、推定領域決定部404が再度推定領域を決定する処理について更に詳細に説明する。
図10は、S910の処理を説明するための図である。図10(a)において、人1000および人1001は、推定領域ID”1”に対応する推定領域である領域602aにおいて属性推定部406により属性情報が推定されなかった人である。人1002は、推定領域ID”2”に対応する推定領域である領域603bにおいて属性推定部406により属性情報が推定されなかった人である。人1003は、推定領域ID”4”に対応する推定領域である領域605dにおいて属性推定部406により属性情報が推定されなかった人である。
推定領域決定部404は、検出部403における検出の結果に基づいて、属性推定部406により属性情報が推定されなかった人物1000〜1003のうち少なくとも1人を含む推定領域を少なくとも1つ決定する。
図10bにおける、範囲1004は、属性推定部406が人1000および人1001に対して属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した場合の撮影範囲である。なお、範囲1004は、検出部403が検出した人の顔領域の画素数に基づいて、推定領域決定部404により決定される。そして、推定領域決定部404は、範囲1004内において範囲1004の面積以下となり、かつ、人1000および人1001の少なくとも一人を含む領域を推定領域として決定する。この場合、範囲1004に対応する推定領域として領域1004bが決定される。なおこのとき、推定領域決定部404は、範囲1004に対応する推定領域である領域1004bに対して、推定領域IDである“5”を付与する。
次に、推定領域決定部404は、範囲1005を決定する。範囲1005は、属性推定部406が人1002および人1003の属性情報を推定するために最低限必要な顔領域の画素数を取得できるズーム倍率で撮影した場合の撮影範囲である。そして、推定領域決定部404は、範囲1005内において範囲1005の面積以下となり、かつ、人1002および人1003のうち少なくとも1人を含む領域を推定領域として決定する。この場合、推定領域決定部404は、範囲1005に対応する推定領域として領域1005bが決定される。また、推定領域決定部404は、範囲1005に対応する推定領域である領域1005bに対して、推定領域IDである“6”を付与する。
以上のように、推定領域決定部404は、検出部403における検出の結果に基づいて、属性推定部406により属性情報が推定されなかった人のうち少なくとも1人を含む推定領域を少なくとも1つ決定する。なお、推定領域決定部404は、検出領域601の左下から右方向へ走査するように推定領域を決定したが、これに限定されない。例えば、検出領域601の左上から右方向へ操作するように推定領域を決定してもよい。
そして、推定領域決定部404により再度決定された複数の推定領域の各々について、S506およびS507の処理を行う。こうすることにより、属性推定部406により属性情報を推定できない人がいた場合であっても、該人に対して属性推定部406により属性情報が再度推定されるようになる。なお、S910にて、推定領域404により再度決定される推定領域は1つであってもよい。
これまで、上述した本実施形態に係る画像処理は画像処理装置100が行うとして説明したが、これに限定されない。本実施形態に係る画像処理装置100の1以上の機能を、撮影装置102が有していてもよい。つまり、本実施形態では、画像処理装置100のCPU1200により本実施形態に係る画像処理が実行されたが、後述するクライアント装置および撮影装置102がそれぞれ有するCPUにより実行されてもよい。
例えば、図4に示す、検出領域設定部401と、検出部403と、推定領域決定部404と、コマンド管理部405と、属性推定部406と、記憶部408は撮影装置102が有していてもよい。なお、このとき、操作受付部402と、出力制御部407は、図12に示すハードウェア構成により実現されるクライアント装置1100が有する。この場合について、図11を参照して更に詳細に説明する。なお、図2〜4と同一の機能を有する構成には同一符号を付すとともに、機能的に変わらないものについては説明を省略する。
図11は、画像処理装置100の一部の機能を有する撮影装置102とクライアント装置1100の機能ブロック図の一例である。撮影装置102とクライアント装置1100は、ネットワーク104を介して通信が行われる。
画像処理部206で生成された画像データは、通信部209と通信部1101とを介してクライアント装置1100における出力制御部407に送られる。出力制御部407は、例えば、撮影装置102から送られた画像データを表示装置101に出力する。なおこのとき、表示装置101はクライアント装置1100に接続されているものとする。
検出領域設定部401は、生成された画像データにおいて、検出部403が処理を行う対象とする領域である検出領域を設定する。なお、クライアント装置1100における操作受付部402を介して、ユーザーにより設定された画像内の領域を検出領域として設定してもよいし、事前に設定された所定の領域を検出領域としてもよい。なお、ユーザーによる検出領域の指示や、事前に設定された領域がなければ、画像データが示す画像全体を検出領域としてもよい。
クライアント装置1100における操作受付部402は、マウス、キーボードなどの入力装置(不図示)を介して、ユーザーにより行われた操作を受け付ける。なお、操作受付部402が受け付けたユーザーによる操作の情報は、通信部1101と通信部209とを介して撮影装置102における検出領域設定部401へと送られる。
検出部403は、生成された画像データにおいて検出領域に含まれる人体の検出を行う。推定領域決定部404は、検出部403における検出の結果に基づいて、検出部403により検出した複数の人のうち少なくとも1人を含む推定領域を複数決定する。
コマンド管理部405は、推定領域決定部404において決定された複数の推定領域の各々について、順次撮影されるよう撮影装置102を制御するための制御コマンドを生成する。なお、コマンド管理部405にて生成された制御コマンドは、システム制御部207へ送られ、該制御コマンドに基づいて撮影装置102の制御が行われる。
属性推定部406は、撮影装置102から得られる撮影画像の各々に対して推定領域に存在する人の属性情報を推定する。記憶部408は、検出領域や推定領域の位置に関する情報などを記憶する。
画像処理の出力の結果(例えば、図8に示す表など)は、通信部209および通信部1101を介して、撮影装置102からクライアント装置1100へと送られる。なおこのとき、撮影装置102から送られた画像処理の出力の結果は、例えば、出力制御部407へと送られ、出力制御部407により表示装置101に出力されてもよい。
以上のように画像処理装置100の1以上の機能は、撮影装置102が有していてもよい。
なお、本発明は、上述の実施形態の1以上の機能を実現するプログラムを1つ以上のプロセッサが読出して実行する処理でも実現可能である。プログラムは、ネットワーク又は記憶媒体を介して、プロセッサを有するシステム又は装置に供給するようにしてもよい。また、本発明は、上述の実施形態の1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。また、画像処理装置100または撮影装置102の各部は、図12に示すハードウェアにより実現してもよいし、ソフトウェアにより実現することもできる。