以下、発明を実施するための最良の形態(以下実施の形態とする)について説明する。尚、説明は以下の順序で行う。
1.実施の形態
2.他の実施の形態
<1.実施の形態>
[1−1.実施の形態の概要]
まず、実施の形態の概要を説明する。因みに、この概要を説明した後、本実施の形態の具体例の説明に移る。
図1において1は、撮像装置を示す。この撮像装置1は、撮像部2を有している。またこの撮像装置1は、人物同士の関係を表す人間関係情報を所定の記憶部(図示せず)に記憶させる人間関係情報記憶制御部3を有している。さらにこの撮像装置1は、撮像部2により得られた撮像画像から、被写体としての人物を検出する人物検出部4を有している。さらにこの撮像装置1は、人物検出部4により撮像画像から人物が検出されると、記憶部に記憶されている人間関係情報を用いて、撮像画像から検出された人物の中から画像として記録すべき人物を選定する記録対象人物選定部5を有している。
さらにこの撮像装置1は、記録対象人物選定部5により選定された人物が主たる被写体となるように撮像部2を制御し、この撮像部2により得られた撮像画像を所定の記録部(図示せず)に記録させる撮像画像記録制御部6を有している。
すなわち、この撮像装置1は、人物同士の関係を表す人間関係情報をもとに、撮像画像に含まれている人物の中から画像として記録すべき人物を選定し、当該人物を主たる被写体として自動的に撮影を行うようになっている。こうすることで、撮像装置1は、関係性が高い人物同士を自動的に撮影することなどができ、被写体となる人物にとって有用な画像(例えば仲の良い人が一緒に写っている画像)を自動的に撮影することができる。
具体的に、人間関係情報には、人物同士の親密度などが記されるようになっている。そして記録対象人物選定部5は、この人間関係情報に記された人物同士の親密度を用いて、撮像画像から検出された人物ごとに記録優先度を算出し、この記録優先度をもとに記録すべき人物を選定するようになっている。
より具体的には、人間関係情報には、人物同士の過去の親密度と、各人物の所属グループが記されるようになっている。そして記録対象人物選定部5は、撮像画像をもとにこの撮像画像から検出された人物同士の現在の親密度を算出する。さらに記録対象人物選定部5は、この算出した現在の親密度と、人間関係情報に記されている、検出された人物同士の過去の親密度及び検出された各人物の所属グループの数と、検出された人物を画像として既に記録した枚数とを用いて、検出された人物ごとの記録優先度を算出するようになっている。
さらに撮像部2にズーム機能を搭載させ、この撮像部2の向きを任意の向きに変える為の機構を有する駆動装置(図示せず)と接続する接続部7を撮像装置1に設けるようにしてもよい。
このとき撮像画像記録制御部6は、記録対象人物選定部5により選定された人物に適した構図及びカメラ設定となるように、構図及びカメラ設定に係るパラメータを決定する。そして撮像画像記録制御部6は、このパラメータに基づき撮像部2を制御すると共に接続部7を介して駆動装置を制御し、この撮像部2により得られた撮像画像を所定の記録部に記録させるようにする。
さらにこの撮像装置1に、撮像画像から検出された人物同士の現在の親密度と過去の親密度とをもとに、この人物同士の新たな親密度を算出し、この算出した親密度で人間関係情報を更新する人間関係情報更新部8を設けるようにしてもよい。
このような構成でなる撮像装置1の具体例について、以下、詳しく説明する。
[1−2.実施の形態の具体例]
[1−2−1.自動撮影システムのシステム構成]
次に、第1の実施の形態の具体例を説明する。図2において100は、自動撮影システムを示す。この自動撮影システム100は、デジタルスチルカメラ(これをDSCとも呼ぶ)101と曇台機能付きのクレードル102とで構成される。ここで、DSC101が、上述した撮像装置1に対応するものであり、クレードル102が、上述した駆動装置に対応するものである。
この自動撮影システム100では、DSC101をクレードル102上部の雲台部102Aに載置することで、DSC101とクレードル102とが端子(図示せず)を介して接続される。自動撮影システム100は、この状態で、ユーザにより自動撮影モードが選択されると、自動撮影モードで動作する。
このとき、DSC101は、クレードル102と通信して雲台部102Aのパン・チルト機構を制御することで、撮影方向を任意の方向に変えることができるようになっている。
そしてDSC101は、カメラの向きを任意の方向に変えながら、人物同士の関係を表す人間関係グラフ(詳しくは後述する)を利用して撮影すべき被写体を見付けると、自動的にこの被写体を撮影するようになっている。
尚、DSC101は、クレードル102から取り外されれば、一般的なDSCと同様、ユーザ操作に応じて撮影できるようになっている。
[1−2−2.DSC及びクレードルのハードウェア構成]
次に、図3を用いて、DSC101及びクレードル102のハードウェア構成について説明する。
DSC101は、CPU110が、ROM111に書き込まれたプログラムをRAM112に展開して実行することで各種処理を行うと共に、操作部113からの入力信号に応じて各部を制御する。因みに、CPUは、Central Processing Unitの略、ROMは、Read Only Memoryの略、RAMは、Random Access Memoryの略である。
操作部113は、撮影ボタン、モード切替スイッチ、ズームボタン、電源ボタン、タッチパネルなどを含み、これらの操作に応じた入力信号をCPU110に送る。CPU110は、操作部113から送られてくる入力信号をもとに、どのボタンが操作されたのかを認識する。尚、タッチパネルは、ディスプレイ114とともにタッチスクリーンを構成するようになっている。
CPU110は、クレードル102から外された状態で、例えば操作部113の電源ボタンが押下されて電源オンすると、又はモード切替スイッチの操作により動作モードを通常撮影モードに切り替えるよう指示されると、通常撮影モードで動作する。
すると撮像部115は、撮像制御部116の制御のもと、図示しないレンズを介して取り込んだ被写体からの光を撮像素子で電気信号に変換(すなわち光電変換)することで、アナログの画像信号を得る。そして撮像部115は、この画像信号をデジタルの画像信号に変換した後、撮像制御部116に送る。
さらに、この画像信号は、撮像制御部116から画像処理部117に送られ、この画像処理部117によりディスプレイ114に表示する為の処理が施された後、表示制御部118に送られる。
表示制御部118は、ディスプレイ114を制御して、この画像信号に基づく画像をディスプレイ114に表示させる。この結果、ディスプレイ114には、被写体の画像がそのままスルー画(モニタリング画像などとも呼ばれる)として表示される。これにより、DSC101は、撮影者に被写体を確認させることができる。
またこのとき表示制御部118は、メニューやアイコンなどのグラフィックス信号を生成して、これを画像信号に重畳する。この結果、ディスプレイ114には、スルー画と共に、撮影に係わるメニューやアイコンなどが表示される。
またこのときCPU110は、撮像制御部116を介して得られる画像に対して顔検出処理を行う。この結果、人物の顔を検出すると、CPU110は、表示制御部118を介して、ディスプレイ114に表示させているスルー画上に、顔として検出した領域(これを顔領域とも呼ぶ)を囲う顔枠を表示させる。
さらにこのとき、ズームボタンが押下されてズームイン又はズームアウトが指示されたとする。すると、CPU110は、ズームを制御してズームイン又はズームアウトを行う。
具体的に、CPU110は、撮像制御部116に対して、ズーム倍率を指定する。撮像制御部116は、指定されたズーム倍率でズームするよう撮像部115を制御する。この結果、ズームイン又はズームアウトが行われる。
この結果、ディスプレイ114に表示されているスルー画が拡大(ズームイン)又は縮小(ズームアウト)される。
ここで、例えばメニューから静止画像撮影モードが選択されている状態で、操作部113の撮影ボタンが押下されたとする。すると、CPU110は、静止画像を記録する。
具体的に、画像処理部117は、CPU110の制御のもと、撮像制御部116から送られてくる画像信号を所定の静止画像フォーマットでエンコードすることで、静止画像データを生成する。
CPU110は、このようにして生成された静止画像データを、RAM112に一時記憶させた後、タグ情報などを付与したうえで、記憶媒体制御部119に送る。記憶媒体制御部119は、この静止画像データを静止画像ファイルとして記憶媒体120に記憶させる。このようにして、DSC101は、静止画像を記録する。因みに、この記憶媒体120は、例えば、着脱可能なメモリカードである。
一方、動画像撮影モードが選択されている状態で、操作部113の撮影ボタンが押下されたとする。すると、CPU110は、動画像の記録を開始する。
具体的に、画像処理部117は、CPU110の制御のもと、撮像制御部116から送られてくる画像信号を所定の動画像フォーマットでエンコードすることで、動画像データを生成していく。
またこのとき、音声処理部121は、CPU110の制御のもと、マイクロホン122から入力されるアナログの音声信号を、デジタルの音声信号に変換した後、CPU110に送る。
CPU110は、この音声信号を所定の音声フォーマットでエンコードすることで、音声データを生成していく。
そしてCPU110は、このようにして生成された動画像データと音声データとを多重化することで動画像音声データを生成して、この動画像音声データをRAM112に一時記憶させた後、順次記憶媒体制御部119に送る。記憶媒体制御部119は、この動画像音声データを順次記憶媒体120に記憶させていく。
その後、再び撮影ボタンが押下されると、CPU110は、動画像の記録を終了する。
すなわちCPU110は、このときRAM112に残存する動画像音声データを、記憶媒体制御部119に送る。記憶媒体制御部119は、この動画像音声データを記憶媒体120に記憶させる。この結果、撮影開始から終了までの一連の動画像音声データが記憶媒体120に記憶されたことになる。
さらにCPU110は、記憶媒体制御部119を介して、一連の動画像音声データにヘッダ情報を付与することにより、この動画像音声データを動画像ファイルとして記憶媒体120に記憶させる。このようにして、DSC101は、動画像を記録する。
またCPU110は、例えば操作部113のモード切替スイッチの操作により動作モードを再生モードに切り替えるよう指示されると、再生モードで動作する。
するとCPU110は、記憶媒体制御部119を介して、記憶媒体120から例えば撮影日時が最も新しいファイルを読み出して、RAM112に一時記憶させる。
ここで、このファイルが静止画像ファイルである場合、CPU110は、この静止画像ファイルから静止画像データを抽出して、画像処理部117に送る。
画像処理部117は、この静止画像データをエンコードされたときと同一の静止画像フォーマットでデコードすることで元の画像信号を得る。CPU110は、この画像信号を、一旦RAM112に書き戻した後、表示制御部118に送る。
表示制御部118は、ディスプレイ114を制御して、この画像信号に基づく静止画像をディスプレイ114に表示させる。このようにしてDSC101は、静止画像を再生する。
一方、読み出したファイルが動画像ファイルである場合、CPU110は、この動画像ファイルから、動画像データと音声データとを分離抽出して、動画像データを画像処理部117に送る。
画像処理部117は、この動画像データをエンコードされたときと同一の動画像フォーマットでデコードすることで元の画像信号を得る。この画像信号は、CPU110により、一旦RAM112に書き戻された後、順次表示制御部118に送られる。
表示制御部118は、ディスプレイ114を制御して、画像信号に基づく動画像をディスプレイ114に表示させる。
またこのときCPU110は、音声データをエンコードされたときと同一の音声フォーマットでデコードすることで元の音声信号を得、これをRAM12に書き戻した後、順次音声処理部121に送る。音声処理部121は、音声信号をデジタルからアナログに変換して、この音声信号に基づく音声をスピーカ123から出力させる。このようにしてDSC101は、動画像を再生する。
尚、クレードル102から外された状態のとき、DSC101は、電源制御部124が、バッテリ(図示せず)から得られる電力を各部に供給することで動作するようになっている。
ここで、DSC101がクレードル102上部の雲台部102Aに載置され、DSC101とクレードル102とが端子(図示せず)を介して接続されたとする。
すると、クレードル102に接続された外部電源125からの電力が、クレードル102の電源制御部126を介してDSC101に供給される。
DSC101の電源制御部124は、この電力を各部に供給することでDSC101を動作させると共に、この電力をバッテリ(図示せず)に供給することでバッテリを充電する。
またこのとき、DSC101とクレードル102は、それぞれの外部インタフェース部127、128を介して通信する。
このとき、DSC101のCPU110は、例えば操作部113のモード切替スイッチの操作により動作モードを自動撮影モードに切り替えるよう指示されると、自動撮影モードで動作する。
その後、操作部113の撮影ボタンが押下されると、CPU110は、自動撮影を開始する。すると、CPU110は、DSC101の撮影方向を任意の方向に変える為のパン・チルト制御信号をクレードル102に送る。
この結果、クレードル102の雲台部102Aのパン・チルト機構が駆動して、DSC101の撮影方向が任意の方向に変わる。
次に、CPU110は、撮像部115で撮像され撮像制御部116を介して得られた画像(これを撮像画像とも呼ぶ)を解析して人物の検出を行う。この解析の結果、人物が検出されると、CPU110は、検出された人物の中から画像として記録すべき人物(これを記録対象人物とも呼ぶ)を、後述する人間関係グラフを利用して選定する。
そしてCPU110は、記録対象人物が主たる被写体となるように、撮影に係わる各種パラメータ(これを撮影パラメータとも呼ぶ)を決定する。具体的に、CPU110は、記録対象人物の撮影に適した構図となるように、構図に関するパラメータ(ズーム倍率、パン方向及びチルト方向への向きと移動量など)を決定する。またCPU110は、記録対象人物の撮影に適したカメラ設定となるように、カメラ設定に関するパラメータ(露出、フォーカスなど)を決定する。
CPU110は、これらの撮影パラメータのうち、雲台部102Aの制御に係わる撮影パラメータ(パン方向及びチルト方向への向きと移動量)をパン・チルト制御信号としてクレードル102に送る。またCPU110は、撮像部115の制御に係わる撮影パラメータ(ズーム倍率、露出、フォーカスなど)を撮像制御部116に送る。
この結果、撮影パラメータに基づいて、雲台部102Aと撮像部115とが制御されることにより、記録対象人物の撮影に適した構図及びカメラ設定となる。そしてCPU110は、この構図及びカメラ設定で、記録対象人物の静止画像もしくは動画像を記録する。つまり記録対象人物の撮影を行う。
記録対象人物の撮影が終了すると、CPU110は、DSC101の撮影方向を別の方向に変えて、再び記録対象人物の撮影を行う。
CPU110は、このような動作を、例えば、操作部113の撮影ボタンが再度押下されるまで繰り替えす。
このようにして、DSC101は、自動撮影モード時、撮影方向を変えながら、検出した人物の中から記録対象人物を選んで、自動的に記録対象人物を撮影していくようになっている。
一方、クレードル102は、CPU129が、ROM130に書き込まれたプログラムをRAM131に展開して実行することで各種処理を行うと共に、DSC101から送られてくる各種信号に応じて各部を制御する。
実際、CPU129は、DSC101から、撮影方向を任意の方向に変える為のパン・チルト制御信号が送られてくると、このパン・チルト制御信号を雲台制御部132に送る。雲台制御部132は、このパン・チルト制御信号に基づいて、雲台部102Aのパン・チルト機構を駆動させる為の駆動信号を生成して、これを雲台部102Aに送る。
この結果、雲台部102Aのパン・チルト機構が駆動して、この雲台部102Aに載置されたDSC101の撮影方向が任意の方向に変えられる。
このように、クレードル102は、DSC101に電力を供給すると共に、DSC101からのパン・チルト制御信号に応じて、DSC101の撮影方向を任意の方向に変えることができるようになっている。
尚、クレードル102は、電源制御部126が、外部電源125から得られる電力を各部に供給することで動作するようになっている。
因みに、DSC101の撮像部115が、上述した撮像装置1の撮像部2に対応するものである。またDSC101のCPU110が、撮像装置1の人間関係情報記憶制御部3、人物検出部4、記録対象人物選定部5、撮像画像記録制御部6、人間関係情報更新部8に対応するものである。さらにDSC101の外部インタフェース部127が、撮像装置1の接続部7に対応するものである。
[1−2−3.自動撮影]
次に、上述した自動撮影モードでの自動撮影について、詳しく説明する。この自動撮影では、上述したように、記録対象人物の選定に、人間関係グラフを利用するようになっており、まずこの人間関係グラフのグラフ構造から説明する。
図4に人間関係グラフのグラフ構造を概念的に示す。この図4に示すように、人間関係グラフHgは、人物を表すノードNd(図中ではNd1〜Nd8)と、ノードNd間を結ぶエッジEg(図中ではEg1〜Eg11)とでなるグラフ構造を有している。
各ノードNdには、DSC101に登録されている人物の顔画像が対応付けられている。また各エッジEgは、結んでいる一方のノードNdが表す人物と、もう一方のノードNdが表す人物との親密度を表している。尚、ここでは、人物と人物との親しさを表す指標として親密度を用いている。
ここで、エッジEgは、その太さが太いほど、結んでいる双方のノードNdが表す人物間の親密度が高いこと、すなわち双方のノードNdが表す人物同士がより親しい仲であることを意味する。
一方で、ノードNd間がエッジEgで結ばれていなければ、双方のノードNdが表す人物同士が親しい仲ではないことを意味する。
次に、人間関係グラフHgのデータ構造について説明する。図5に人間関係グラフHgのデータ構造を示す。この図5に示すように、人間関係グラフHgは、各ノードNdが表す人物の属性を管理する為の人物属性テーブルTb1と、各エッジEgが表す人物間の親密度を管理する為の親密度テーブルTb2とでなるデータ構造を有している。
この人物属性テーブルTb1と親密度テーブルTb2は、記憶媒体120に記憶されている。
ここで、説明の都合上、人物の顔画像が登録された顔辞書を説明してから、人物属性テーブルTb1及び親密度テーブルTbについて説明する。図6に顔辞書Fdのデータ構造を示す。この図6に示すように、顔辞書Fdは、顔辞書テーブルTb3と顔画像ファイルFpとでなるデータ構造を有している。
この顔辞書テーブルTb3と顔画像ファイルFpは、記憶媒体120に記憶されている。
顔辞書テーブルTb3は、人物ごとの顔画像データが含まれる顔画像ファイルFpを人物ごとに管理する為のテーブルであり、人物ごとに、人物IDと顔画像ファイルFpのファイル名とが、顔画像情報として記載される。
人物IDは、人物ごとに割り当てられたIDである。尚、複数の顔画像ファイルFpが記憶されている人物の顔画像情報には、1つの人物IDに対して複数のファイル名が記載されるようになっている。顔画像ファイルFpは、任意の画像から切り出された顔画像のデータをファイル化したものである。
これに対して、人物属性テーブルTb1には、顔辞書テーブルTb3に登録されている人物ごとに、人物ID、所属グループID、記録枚数及び性別などが、属性情報として記載される。
所属グループIDは、各人物が所属しているグループを識別する為のものである。尚、複数のグループに所属している人物の属性情報には、1つの人物IDに対して複数のグループIDが記載されるようになっている。
記録枚数は、DSC101で撮影された各人物の画像の枚数、すなわち記憶媒体120に記録されている各人物の画像ファイル(上述の顔画像ファイルFpは除く)の数である。例えば、記憶媒体120に、或る人物の画像ファイルが10個記録されているとすれば、この人物の属性情報には記録枚数が「10」と記載される。性別は、各人物の性別を示すものである。
また親密度テーブルTb2には、顔辞書テーブルTb3に記載されている人物間の親密度が、人物IDと人物IDとの組み合わせごとに記載される。親密度は、例えば「−20」から「+20」の範囲の整数で表され、値が大きいほど親しい仲であることを示すようになっている。
尚、親密度は、所定の条件のもとに変化し、「0」を基準として、「0」以下であれば親しくないこと、「0」より大きければ親しいことを意味する。
また、親密度テーブルTb2には、人物と人物との親密度として、一方の人物側から見た親密度と、もう一方の人物側から見た親密度とが別々に記載されるようになっている。
実際、親密度テーブルTb2には、例えば人物ID=0の人物と人物ID=2の人物との親密度として、人物ID=0の人物側から見た親密度(横0、縦2)が「8」、人物ID=2の人物側から見た親密度(横2、縦0)が「2」のように記載される。
これら顔辞書テーブルTb3、人物属性テーブルTb1及び親密度テーブルTb2に登録されている顔画像情報、属性情報及び親密度が、人物IDにより対応付けられて、上述した人間関係グラフHgのグラフ構造が表される。
尚、顔辞書テーブルTb3に登録されている顔画像は、自動撮影時に、撮像画像から検出された人物の個人識別などにも利用される。
例えば、撮像画像から人物の顔が検出されたとする。このときCPU110は、検出した顔の領域(すなわち顔領域)を検出顔画像として切り出す。そしてCPU110は、この検出顔画像と、顔辞書テーブルTb3に顔画像ファイルFpとして登録されている顔画像(これを登録顔画像とも呼ぶ)の各々とを比較して類似度を算出する。
そしてCPU110は、類似度が所定の閾値以上となる登録顔画像を、検出顔画像と同一人物の顔画像であると見なすことで、撮像画像から検出された人物が、この登録顔画像に対応する人物IDの人物であると識別する。
このように顔画像を比較することで個人識別を行う場合、人物ごとの登録顔画像の数が多くなるほど、認識精度が向上する。
ゆえに、人物ごとに、光源環境、顔の向き、表情などが異なる顔画像を用意して、これらを顔辞書テーブルTb3に登録するようにすれば、個人識別の精度は格段と向上する。
ところで、DSC101では、顔辞書Fdへの顔画像の登録、及び人間関係グラフHgの更新を、画像の記録時に自動的に行うことができるようになっている。
ここで、顔辞書Fdへの顔画像を登録する処理(これを顔画像登録処理とも呼ぶ)の手順と、人間関係グラフHgを更新する処理(これを人間関係グラフ更新処理とも呼ぶ)の手順について説明する。尚、自動撮影の処理手順については、これらの後に説明することとする。
まず図7に示すフローチャートを用いて、顔画像登録処理の手順(これを顔画像登録処理手順とも呼ぶ)RT1について説明する。
因みに、この顔画像登録処理手順RT1は、DSC101のCPU110が、ROM111に書き込まれているプログラムに従って実行する顔画像登録処理の手順である。
CPU110は、画像を記録したときに、この画像から人物の顔を検出すると、この画像から顔領域を検出顔画像として切り出し、顔画像登録処理を開始する。CPU110は、まず顔画像登録処理手順RT1のステップSP1に移る。
ステップSP1においてCPU110は、画像から切り出した検出顔画像と、顔辞書テーブルTb3に登録されている登録顔画像とを比較することで、個人識別を行う個人識別処理を行う。
図8に、この個人識別処理の手順(これを個人識別処理手順とも呼ぶ)SRT1を示す。CPU110は、個人識別処理を開始すると、この個人識別処理手順SRT1のステップSP100に移る。
ステップSP100においてCPU110は、顔辞書テーブルTb3に少なくとも1個の人物IDが登録されているか否かを判別する。
このステップSP100で否定結果を得ると、このことは、まだ顔辞書テーブルTb3に一人も登録されていないことを意味する。このときCPU110は、入力された顔画像に対応する人物は登録されていないとして、この個人識別処理を終了する。
これに対して、ステップSP100で肯定結果を得ると、このときCPU110は、ステップSP101に移る。ステップSP101においてCPU110は、変数iに0を代入して、次のステップSP102に移る。この変数iは、顔辞書テーブルTb3に登録されている人物を人物iとして順番に指定する為のものである。
ステップSP102においてCPU110は、変数iの値が、顔辞書テーブルTb3に登録されている人物の数Nと等しいか否か判別する。すなわち、このステップSP102は、検出顔画像と、顔辞書テーブルTb3に登録されている全ての人物の登録顔画像とを比較し終えたか否かを判別するステップである。
ここで、まだ全ての人物の登録顔画像と比較し終えていないことにより、このステップSP102で否定結果を得ると、CPU110は、ステップSP103に移る。
ステップSP103においてCPU110は、変数jに0を代入して、次のステップSP104に移る。この変数jは、人物iの登録顔画像を登録顔画像jとして順番に指定する為のものである。
ステップSP104においてCPU110は、変数jの値が、顔辞書テーブルTb3に登録されている、人物iの登録顔画像の数n[i]と等しいか否か判別する。すなわち、このステップSP104は、検出顔画像と、顔辞書テーブルTb3に登録されている、人物iの全ての登録顔画像とを比較し終えたか否かを判別するステップである。
ここで、まだ人物iの全ての登録顔画像と比較し終えていないことにより、このステップSP104で否定結果を得ると、CPU110は、ステップSP105に移る。
ステップSP105においてCPU110は、検出顔画像と、人物iの登録顔画像jとの類似度を算出して、次のステップSP106に移る。ステップSP106においてCPU110は、類似度が所定の閾値以上であるか否かを判別する。
このステップSP106で肯定結果を得ると、このことは、検出顔画像と、人物iの登録顔画像jとが同一人物のものであることを意味する。このときCPU110は、ステップSP107に移る。ステップSP107においてCPU110は、検出顔画像が人物iのものであると判別して、この人物iの人物IDを取得し、次のステップSP108に移る。
これに対して、ステップSP106で否定結果を得ると、このことは、検出顔画像と、人物iの登録顔画像jとが同一人物のものではないことを意味する。このときCPU110は、ステップSP107での処理を行わずに、ステップSP108に移る。
ステップSP108においてCPU110は、変数jにj+1を代入することにより、人物iの登録顔画像の中から、現在指定している登録顔画像の次の登録顔画像を指定して、ステップSP104に戻る。
以降、CPU110は、ステップSP104で肯定結果を得るまで、すなわち検出顔画像と、人物iの全ての登録顔画像とを比較し終えるまで、ステップSP104〜SP108の処理を繰り返す。
そして、人物iの全ての登録顔画像と比較し終えたことにより、このステップSP104で肯定結果を得ると、CPU110は、ステップSP109に移る。
ステップSP109においてCPU110は、変数iにi+1を代入することにより、現在指定している人物の次の人物を指定して、ステップSP102に戻る。
以降、CPU110は、ステップSP102で肯定結果を得るまで、すなわち検出顔画像と、全ての人物の登録顔画像とを比較し終えるまで、ステップSP102〜SP109までの処理を繰り返す。
そして、全ての人物の登録顔画像と比較し終えたことにより、このステップSP102で肯定結果を得ると、CPU110は、この個人識別処理を終了する。
このようにしてCPU110は、検出顔画像との類似度が所定の閾値以上となる登録顔画像の人物を、検出顔画像に対応する人物と識別して、この人物の人物IDを取得するようになっている。尚、類似度が閾値以上となる登録顔画像の人物が複数存在する場合、例えば、最も類似度が高い登録顔画像の人物の人物IDを取得するようにする。
このような個人識別処理を終了すると、CPU110は、次のステップSP2(図7)に移る。ステップSP2においてCPU110は、個人識別処理の結果として、検出顔画像に対応する人物の人物IDを取得したか否かを判別する。
このステップSP2で肯定結果を得ると、このことは、検出顔画像に対応する人物の人物IDを取得したこと、すなわち検出顔画像に対応する人物の人物IDが顔辞書テーブルTb3に登録されていることを意味する。
このときCPU110は、ステップSP3に移り、検出顔画像を顔画像ファイルFpとして記憶媒体120に記憶すると共に、この顔画像ファイルFpのファイル名を、取得した人物IDに対応付けて顔辞書テーブルTb3に登録する。このようにして登録した後、CPU110は、顔画像登録処理を終了する。
これに対して、ステップSP3で否定結果を得ると、このことは、検出顔画像に対応する人物の人物IDが顔辞書テーブルTb3に登録されていないことを意味する。
このときCPU110は、ステップSP4に移り、検出顔画像を顔画像ファイルFpとして記憶媒体120に記憶すると共に、この顔画像ファイルFpのファイル名を、新たに発行した人物IDに対応付けて顔辞書テーブルTb3に登録する。このようにして登録した後、CPU110は、顔画像登録処理を終了する。
このような顔画像登録処理により、CPU110は、任意の画像から抽出した人物の顔画像を顔辞書Fdに登録するようになっている。
この顔画像登録処理は、人間関係グラフHgの更新と共に行われる処理であり、この点をふまえ、次に、図9及び図10に示すフローチャートを用いて、人間関係グラフ更新処理の手順(これを人間関係グラフ更新処理手順とも呼ぶ)RT2について説明する。
因みに、この人間関係グラフ更新処理手順RT2は、DSC101のCPU110が、ROM111に書き込まれているプログラムに従って実行する人間関係グラフ更新処理の手順である。
CPU110は、例えば、静止画像撮影モードで静止画像ファイルを記憶媒体120に記憶させた後、この人間関係グラフ更新処理を開始して、人間関係グラフ更新処理手順RT2のステップSP20に移る。
ステップSP20においてCPU110は、静止画像ファイルに基づく静止画像から人物の顔を検出して、次のステップSP21に移る。ステップSP21においてCPU110は、変数iに0を代入して、次のステップSP22に移る。このときの変数iは、静止画像から検出された人物の顔を、人物iの顔として順番に指定する為のものである。
ステップSP22においてCPU110は、変数iの値が、静止画像から検出された人物の顔の数Nと等しいか否か判別する。すなわち、このステップSP22は、静止画像から検出された人物の顔を全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての人物の顔を指定し終えていないことにより、このステップSP22で否定結果を得ると、CPU110は、ステップSP23に移る。
ステップSP23においてCPU110は、静止画像から人物iの顔領域を検出顔画像として切り出して、次のステップSP24に移る。ステップSP24においてCPU110は、上述した顔画像登録処理を行うことにより、人物iの検出顔画像を顔辞書テーブルTb3に登録して、次のステップSP25に移る。
ステップSP25においてCPU110は、変数iにi+1を代入することにより、静止画像から検出された人物の顔の中から、現在指定している顔の次の顔を指定して、ステップSP22に戻る。
以降、CPU110は、ステップSP22で肯定結果を得るまで、すなわち静止画像から切り出した検出顔画像を全て顔辞書テーブルTb3に登録し終えるまで、ステップSP22〜SP25の処理を繰り返す。
そして、全ての検出顔画像を顔辞書テーブルTb3に登録し終えたことにより、このステップSP22で肯定結果を得ると、CPU110は、ステップSP26に移る。
ステップSP26においてCPU110は、再び変数iに0を代入して、次のステップSP27に移る。このときの変数iは、静止画像から切り出された検出顔画像に対応する人物を人物iとして順番に指定する為のものである。
ステップSP27においてCPU110は、変数iの値が、静止画像から切り出された検出顔画像の数Nと等しいか否か判別する。すなわち、このステップSP27は、静止画像から切り出された検出顔画像の各々に対応する人物を人物iとして全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての人物を指定し終えていないことにより、このステップSP27で否定結果を得ると、CPU110は、ステップSP28に移る。
ステップSP28においてCPU110は、静止画像から切り出したi番目の検出顔画像に対応する人物iの人物IDを、顔辞書テーブルTb3から取得して、次のステップSP29に移る。
ステップSP29においてCPU110は、顔辞書テーブルTb3から取得した人物iの人物IDが、人間関係グラフHgに登録されているか否かを判別する。
このステップSP29で否定結果を得ると、このことは、人物iの人物IDが人間関係グラフHgにまだ登録されていないことを意味する。
このときCPU110は、ステップSP30に移り、人物iの人物IDを人間関係グラフHgの人物属性テーブルTb1に新規で追加して、次のステップSP31に移る。
ステップSP31においてCPU110は、i番目の検出顔画像から、人物iの性別を判別して、これをこの人物iの属性情報として、人物属性テーブルTb1に記載して、次のステップSP32に移る。
尚、顔画像から人物の性別を判別する方法については、種々のアルゴリズムが知られている。例えば、顔画像から、顔の形状や色、髪型、目や口の位置などの特徴量を検出し、その特徴量と、予め用意された性別ごとの特徴量とを比較して、これらの相関値が高い方の性別を、人物の性別として判別するものがある。
これに対して、ステップSP20で肯定結果を得ると、このことは、人物iの人物IDが人間関係グラフHgに登録済であることを意味する。
このときCPU110は、ステップSP31での処理を行わずに、ステップSP32に移る。
ステップSP32においてCPU110は、今回記録した静止画像から人物iの検出顔画像が検出されたこと、つまり今回人物iが撮影されたことから、この人物iの属性情報である記録枚数を更新する。すなわち、CPU110は、この人物iの属性情報である記録枚数を、現在の記録枚数+1に更新して、次のステップSP33に移る。
ここまでのステップSP28〜SP32の処理により、人物iに関して人物属性テーブルTb1の更新が終了したことになる。
ステップSP33(図10)においてCPU110は、変数jに0を代入して、次のステップSP34に移る。このときの変数jは、静止画像から検出された、人物i以外の人物を人物jとして順番に指定する為のものである。
ステップSP34においてCPU110は、変数jの値が、静止画像から切り出された検出顔画像の数Nと等しいか否か判別する。すなわち、このステップSP34は、静止画像から切り出された、人物i以外の全ての人物を指定し終えたか否かを判別するステップである。
ここで、まだ全ての人物を指定し終えていないことにより、このステップSP34で否定結果を得ると、CPU110は、ステップSP35に移る。ステップSP35においてCPU110は、人物iと、人物i以外の人物jとの親密度を算出して、親密度テーブルTb2に記載する。
具体的に、CPU110は、まず人物jの人物IDを、顔辞書テーブルTb3から取得する。そしてCPU110は、人物iの人物IDと人物jの人物IDとをもとに、人物i側から見た人物iと人物jとの親密度を親密度テーブルTb2から検索する。
検索の結果、親密度が得られると、このことは、過去に人物i側から見た人物iと人物jとの親密度が算出され、親密度テーブルTb2に記載されていることを意味する。このときCPU110は、親密度テーブルTbから得られた親密度を過去親密度とする。
一方、検索の結果、親密度が得られなければ、このことは、過去1度も人物i側から見た人物iと人物jとの親密度が算出されてなく、親密度テーブルTb2に記載されていないことを意味する。このときCPU110は、過去親密度を「0」とする。
さらにCPU110は、今回記録した静止画像をもとに、人物i側から見た人物iと人物jとの親密度を算出(具体的な算出方法については後述する)して、これを現在親密度とする。そしてCPU110は、過去親密度に現在親密度を加算して得られた値を、人物i側から見た人物iと人物jとの新たな親密度として、親密度テーブルTb2に記載する。
このとき、CPU110は、人物i側から見た人物iと人物jとの過去親密度が親密度テーブルTb2に記載されていれば、この過去親密度を今回算出した新たな親密度で更新する。一方、過去親密度が記載されていなければ、今回算出した親密度を、人物i側から見た人物iと人物jの親密度として親密度テーブルTb2に新規で追加する。
すなわち、人物i側から見た人物iと人物jとの過去親密度をCpast[i,j]、現在親密度をCnow[i,j]とすると、新たな親密度Cgraph[i,j]は、次式(1)により表される。
Cgraph[i,j]=Cpast[i,j]+Cnow[i,j]……(1)
尚、今回記録した静止画像から得られる現在親密度Cnow[i,j]は、詳しくは後述するが、例えば、人物iと人物jの双方ともに顔の笑顔度が低い場合などに−(負)の値を取るようになっている。これにより、例えば、昔は仲が良かったが、現在は仲が良くない人物同士であれば、静止画像を記録するごとに、親密度テーブルTb2に記載される親密度が下がっていくことになる。このように、親密度テーブルTb2には、過去の親密度と、現在の親密度の双方を反映した親密度が記載されるようになっている。
このようにして、人物i側から見た人物iと人物jとの親密度を算出して親密度テーブルTb2に記載した後、CPU110は、ステップSP36に移る。ステップSP36においてCPU110は、変数jにj+1を代入(ただし、人物iと人物jとが同一人物にならないようj=iはスキップ)することにより、現在指定している人物jの次の人物を指定して、ステップSP34に戻る。
以降、CPU110は、ステップSP34で肯定結果を得るまで、すなわち人物iと、人物i以外の全ての人物jとの親密度を算出して親密度テーブルTb2に記載し終えるまで、ステップSP34〜SP36までの処理を繰り返す。
そして、人物iと、人物i以外の全ての人物jとの親密度を算出して親密度テーブルTb2に記載し終えたことにより、このステップSP34で肯定結果を得ると、CPU110は、ステップSP37に移る。
ここまでのステップSP33〜SP36の処理により、人物iに関して親密度テーブルTb2の更新が終了したことになる。
ステップSP37においてCPU110は、変数iにi+1を代入することにより、現在指定している人物iの次の人物を指定して、ステップSP27(図9)に戻る。
以降、CPU110は、ステップSP27で肯定結果を得るまで、すなわち静止画像から検出された全ての人物に関して人間関係グラフHgを更新し終えるまで、ステップSP27〜ステップSP37の処理を繰り返す。
そして、静止画像から検出された全ての人物に関して人間関係グラフHgを更新し終えたことにより、このステップSP27で肯定結果を得ると、CPU110は、ステップSP38に移る。
ステップSP38においてCPU110は、更新し終えた人間関係グラフHgのグラフ構造をもとに、登録されている人物の各々が所属する所属グループを再判別して、人物属性テーブルTb1に記載さている各人物の所属グループを更新する。尚、各人物の所属グループを判別する方法については後述する。
このようにして所属グループを更新した後、CPU110は、人間関係グラフ更新処理を終了する。
このような人間関係グラフ更新処理により、CPU110は、画像を記録したときに、顔辞書Fdへ顔画像を登録すると共に人間関係グラフHgを更新するようになっている。
ここで、各人物の所属グループを判別する方法について簡単に説明する。ノードNdとエッジEgでなるデータ構造から、各ノードNd(すなわち各人物)を分類する方法については、種々のアルゴリズムが知られている。例えば、ノードNdとエッジEgの繋がり具合から、各ノードNdを分類するアルゴリズムとして、GirvanとNewmanによるGN法が知られている(非特許文献1参照)。
M.E.J.Newman and M.Girvan,Finding and evaluating community structure in networks. Phys.Rev.69,026113(2004)
このGN法は、階層的クラスタリングの一手法であり、与えられた多数のデータ(ノードNdに相当)の相関性を表す指標を定義して、この指標により表される相関性の強弱をもとにデータを分類する方法である。
このGN法では、ノードNd間を結ぶエッジEgに対して、「Betweenness」という指標を定義している。「Betweenness」は、適当なノードNd間の経路の集合を与えたときに、通る回数が多いエッジEgほど大きくなるように定義されている。そしてこの「Betweenness」が大きいエッジEgは、グループ間を繋ぐエッジEgであると予測できる。
この理由は、仮に2つのクラスタ(グループ)で共有するエッジEgが数本しか存在しないとすれば、クラスタ間の移動は、必ずこの数本のうちのいずれかを通るからである。
ゆえに「Betweenness」が小さいエッジEgで結ばれたノードNdが同一グループに属するものと見なすことができる。
実際、このGN法を用いて、各ノードNdが属するグループを判別する場合、まず人間関係グラフHg内の全てのエッジEgに対して、「Betweenness」を算出する。次に「Betweenness」の大きなエッジEgを人間関係グラフHgから取り除く。さらに残りの全てのエッジEgに対して、再度「Betweenness」を算出する。このような手順を繰り返し行う。
この結果、各ノードNdが属するグループ、すなわち各人物の所属グループが判別される。
CPU110は、このようなアルゴリズムを用いて、各人物の所属グループを判別するようになっている。
ここで、自動撮影処理の手順(これを自動撮影処理手順とも呼ぶ)について説明する。尚、ここでは、自動撮影処理手順の概要を説明してから、その詳細を説明していくこととする。
図11に、自動撮影処理手順の概要である自動撮影処理手順RT3を示す。因みに、この自動撮影処理手順RT3は、DSC101のCPU110が、ROM111に書き込まれているプログラムに従って実行する自動撮影処理の手順である。
CPU110は、DSC101がクレードル102と接続された状態で、操作部113を介して自動撮影モードに切り替えるよう指示されると、自動撮影処理を開始して、自動撮影処理手順RT3のステップSP40に移る。
ステップSP40においてCPU110は、現在得られている撮像画像から人物を検出する人物検出処理(詳しくは後述する)を行って、次のステップSP41に移る。
ステップSP41においてCPU110は、人物検出処理の結果、人物が検出されたか否かを判別する。このステップSP41で肯定結果を得ると、CPU110は、ステップSP42に移る。
ステップSP42においてCPU110は、人間関係グラフHgを利用して、検出された人物の中から画像として記録すべき人物(記録対象人物)を選定する記録対象人物選定処理(詳しくは後述する)を行って、次のステップSP43に移る。
ステップSP43においてCPU110は、記録対象人物選定処理の結果、記録対象人物が選定されたか否かを判別する。このステップSP43で肯定結果を得ると、CPU110は、ステップSP44に移る。
ステップSP44においてCPU110は、記録対象人物の撮影に適した構図及びカメラ設定となるように撮影パラメータを決定して、この撮影パラメータに基づき、雲台部102Aと撮像部115とを制御する。尚、撮影パラメータに関して、詳しくは後述する。
このようにして、決定した撮影パラメータに基づき雲台部102Aと撮像部115とを制御した後、CPU110は、次のステップSP45に移る。ステップSP45においてCPU110は、記録対象人物の画像を記録する画像記録処理(詳しくは後述する)を行って、次のステップSP46に移る。
ステップSP46においてCPU110は、記録対象人物の画像を記録することにともなって、記録履歴を更新する記録履歴更新処理(詳しくは後述する)を行い、次のステップSP47に移る。尚、記録履歴とは、自動撮影を開始してから現在までに記録した各人物の画像の枚数と、顔辞書Fdと人間関係グラフHgのことである。
ステップSP47においてCPU110は、操作部113を介して自動撮影モードを終了するよう指示されたか、又は自動撮影を開始してから所定時間経過したか否かを判別する。尚、CPU110は、例えば、バッテリの残量から算出した動作可能時間や、ユーザにより設定された撮影時間などを、このときの所定時間とする。
このステップSP47で肯定結果を得ると、CPU110は、自動撮影処理を終了する。
これに対して、ステップSP47で否定結果を得ると、CPU110は、ステップSP40に戻り、撮影方向を変えて、再度、人物検出処理を行う。
また人物検出処理の結果、人物が検出されなかったことにより、上述のステップSP41で否定結果を得た場合、CPU110は、ステップSP42〜SP46までの処理を行わずに、ステップSP47に移る。
さらに記録対象人物選定処理の結果、記録対象人物が選定されなかったことにより、上述のステップSP43で否定結果を得た場合も、CPU110は、ステップSP44〜SP46までの処理を行わずに、ステップSP47に移る。
このような自動撮影処理により、CPU110は、自動撮影を行うようになっている。
次に、自動撮影処理に含まれる各処理について詳しく説明する。まず上述したステップSP40の人物検出処理について詳しく説明する。
図12に、人物検出処理の手順(これを人物検出処理手順とも呼ぶ)SRT2を示す。
CPU110は、人物検出処理を開始すると、人物検出処理手順SRT2のステップSP200に移る。ステップSP200においてCPU110は、撮像部115のズームをWide端(つまり一番広角側)に設定して、次のステップSP201に移る。ここでズームをWide端に設定する理由は、できるだけ広範囲から人物を検出する為である。
ステップSP201においてCPU110は、DSC101の撮影方向を変える為に、まずパン方向の向き及び移動量を指定して、これらを示すパン・チルト制御信号をクレードル102に送る。この結果、クレードル102の雲台部102Aのパン・チルト機構が駆動して、DSC101の撮影方向が、指定されたパン方向の向き及び移動量に応じた方向に変わる。
次にCPU110は、ステップSP202に移り、チルト方向の向き及び移動量を指定して、これらを示すパン・チルト制御信号をクレードル102に送る。この結果、クレードル102の雲台部102Aのパン・チルト機構が駆動して、DSC101の撮影方向が、指定されたチルト方向の向き及び移動量に応じた方向に変わる。
このようにズームをWide端に設定して撮影方向を指定した後、CPU110は、ステップSP203に移る。
ステップSP203においてCPU110は、このとき撮像部115で撮像され制御部116を介して得られた撮像画像に対して顔検出処理を行う。
顔検出については、特開2008−40710号公報にも開示されているように、種々のアルゴリズムが知られている。例えば、撮像画像から、肌色領域と目や口の位置などの顔の特徴量とを検出し、その特徴量の位置関係から肌色領域が人物の顔であるかを判別するものがある。また、撮像画像から得られた輝度データと、顔のテンプレート画像とのマッチング処理を行って、これらの相関値が或る値以上となる場合に顔であると判別するものがある。
CPU110は、これらのアルゴリズムを用いて、顔検出処理を行った後、次のステップSP204に移る。尚、CPU110は、顔検出処理の結果、検出した顔ごとに、撮像画像内の顔の座標(これを顔座標とも呼ぶ)とサイズ(これを顔サイズとも呼ぶ)を顔検出情報として得るようになっている。
また、この顔検出処理では、目や口の位置が顔のどちら側に寄っているかなどにより、撮像画像内における顔の向きを検出できるようにもなっている。また、この顔検出処理では、目や口の傾きなどにより、笑顔度を検出できるようにもなっている。CPU110は、これら顔の向き及び笑顔度も、顔検出情報として得るようになっている。
ステップSP204においてCPU110は、変数iaに0を代入して、次のステップSP205に移る。この変数iaは、撮像画像から検出された人物の顔を、人物iaの顔として順番に指定する為のものである。
ステップSP205においてCPU110は、変数iaの値が、撮像画像から検出された人物の顔の数Naと等しいか否か判別する。すなわち、このステップSP205は、撮像画像から検出された人物の顔を全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての人物の顔を指定し終えていないことにより、このステップSP205で否定結果を得ると、CPU110は、ステップSP206に移る。
ステップSP206においてCPU110は、撮像画像から人物iaの顔領域を検出顔画像として切り出して、次のステップSP207に移る。ステップSP207においてCPU110は、切り出した検出顔画像をもとに、上述した個人識別処理を行って、次のステップSP208に移る。尚、CPU110は、この個人識別処理の結果、人物iaが識別できた場合にのみ、この人物iaの人物IDを得る。
ステップSP208においてCPU110は、人物iaに関して得られた情報を、検出人物情報として、図13に示す検出人物テーブルTb4に記載する。
検出人物テーブルTb4は、顔検出処理により得られた顔検出情報を、撮像画像から顔が検出された人物ごとに管理する為のテーブルであり、人物ごとに、顔番号と人物IDと顔検出情報とが、検出人物情報として記載される。
顔番号は、撮像画像から顔が検出された順に付される番号であり、ここでは、変数iaと等しくなる。また人物IDは、個人識別処理により識別できた人物についてのみ記載されるものであり、識別できなかった人物については記載されない(実際には「なし」と記載される)。
顔検出情報の顔座標は、顔領域の中心座標で表される。さらに顔検出情報の顔サイズは、顔領域の縦と横のサイズを、撮像画像の縦と横のサイズをそれぞれ「1」として、「0」〜「1」の範囲で正規化して得られる値で表される。つまり、この顔サイズは、撮像画像のサイズに対する比率で表される。
さらに顔検出情報の顔の向きは、例えば「右」、「左」、[正面]で表される。さらに顔検出情報の笑顔度は、例えば「−10」から「+10」の範囲の整数で表され、値が大きいほど笑顔であることを示す。具体的には、「0」を基準として、「0」以下であれば、笑顔ではないこと、「0」より大きければ笑顔であることを意味する。
CPU110は、このような人物検出テーブルTb4に対して、人物iaに関して得られた、顔番号ia、人物ID及び顔検出情報を検出人物情報として記載した後、次のステップSP209に移る。
ステップSP209においてCPU110は、変数iaにia+1を代入することにより、撮像画像から検出された人物の顔の中から、現在指定している顔の次の顔を指定して、ステップSP205に戻る。
以降、CPU110は、ステップSP205で肯定結果を得るまで、すなわち撮像画像から検出された人物に関する検出人物情報を全て人物検出テーブルTb4に記載し終えるまで、ステップSP205〜SP209の処理を繰り返す。
そして、全ての検出人物情報を人物検出テーブルTb4に記載し終えたことにより、このステップSP205で肯定結果を得ると、CPU110は、人物検出処理を終了する。
このような人物検出処理により、CPU110は、撮像画像から人物を検出するようになっている。
次に、上述した自動撮影処理のステップSP42(図11)の記録対象人物選定処理について詳しく説明する。
図14に、記録対象人物選定処理の手順(これを記録対象人物選定処理手順とも呼ぶ)SRT3を示す。
CPU110は、撮像画像から人物が検出されると、検出された人物の中から画像として記録すべき人物を選定する記録対象人物設定処理を開始して、記録対象人物選定処理手順SRT3のステップSP300に移る。
ステップSP300においてCPU110は、変数iに0を代入して、次のステップSP301に移る。このときの変数iは、検出人物テーブルTb4に記載されている人物(すなわち撮像画像から検出された人物)を人物iとして順番に指定する為のものである。
ステップSP301においてCPU110は、変数iの値が、検出人物テーブルTb4に記載されている人物の数Nと等しいか否か判別する。すなわち、このステップSP301は、検出人物テーブルTb4に記載されている人物を人物iとして全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての人物を人物iとして指定し終えていないことにより、このステップSP301で否定結果を得ると、CPU110は、ステップSP302に移る。
ステップSP302においてCPU110は、記録対象人物を選定するときの指標となる、人物iに対する記録優先度P[i]を0に初期化して、次のステップSP303に移る。
ステップSP303においてCPU110は、変数jに0を代入して、次のステップSP304に移る。このときの変数jは、人物iに対して、検出人物テーブルTb4に記載されている人物を人物jとして順番に指定する為のものである。
ステップSP304においてCPU110は、変数jの値が、検出人物テーブルTb4に記載されている人物の数Nと等しいか否か判別する。すなわち、このステップSP304は、検出人物テーブルTb4に記載されている人物を人物jとして全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての人物を人物jとして指定し終えていないことにより、このステップSP304で否定結果を得ると、CPU110は、ステップSP305に移る。
ステップSP305においてCPU110は、人物iと人物jとの関係から人物iと人物jの組に対する記録優先度P[i,j]を算出する(算出方法については後述する)。さらにCPU110は、現時点での人物iの記録優先度P[i]に、人物iと人物jの組に対する記録優先度P[i,j]を加算して得られた値を、人物iの新たな記録優先度P[i]として、ステップSP306に移る。
ステップSP306においてCPU110は、変数jにj+1を代入することにより、現在指定している人物jの次の人物を指定して、ステップSP304に戻る。
以降、CPU110は、ステップSP304で肯定結果を得るまで、ステップSP304〜SP306までの処理を繰り返す。
この結果、CPU110は、人物iと順に指定した全ての人物jとの組ごとに算出した記録優先度P[i,j]の合計値を、人物iの記録優先度P[i]として得る。
ここで、人物iと人物jとの組に対する記録優先度P[i,j]の算出方法について説明する。
記録優先度P[i,j]は、i≠jの場合、すなわち人物jが人物iではない場合と、i=jの場合、すなわち人物jが人物iである場合とで算出方法が異なる。
i≠jの場合の算出方法は、以下に示す4項目の考え方に基づいている。第1に、人物iと人物jとが共に人間関係グラフHgに登録されている場合に、登録されていない場合と比して記録優先度P[i,j]を高くする。
第2に、人間関係グラフHg上で、人物iと人物jとの親密度が高いほど、記録優先度P[i,j]を高くする。第3に、人間関係グラフHg上で、人物iと人物jとが共に所属する所属グループの数が多いほど、記録優先度P[i,j]を高くする。第4に、今回得られた撮像画像をもとに算出した人物iと人物jとの親密度(算出方法については後述する)が高いほど、記録優先度P[i,j]を高くする。
ここで、人間関係グラフHgに記載されている人物i側から見た人物iと人物jとの親密度(これを登録親密度とも呼ぶ)をCgraph[i,j]とする。ただし、人物iと人物jのうちの少なくともどちらか一方が人間関係グラフHgに存在しない場合、このCgraph[i,j]は0とする。
また今回得られた撮像画像をもとに算出した人物i側から見た人物iと人物jとの親密度(これを現在親密度とも呼ぶ)をCnow[i,j]とする。さらに人物iと人物jとが共に所属する所属グループの数をG[i,j]とする。ただし、人物iと人物jのうちの少なくともどちらか一方が人間関係グラフHgに存在しない場合、このG[i,j]も0とする。
このとき上述した4項目の考え方に基づくと、記録優先度P[i,j]は、例えば、次式(2)により表される。
P[i,j]=Wa・Cgraph[i,j]+Wb・Cnow[i,j]+
Wc・G[i,j] ……(2)
尚、Wa、Wb、Wcの各々は、Cgraph[i,j]、Cnow[i,j]、G[i,j]の各々に対して重み付けを行う為の重み係数である。
またこの記録優先度P[i,j]を算出するうえで必要となる、現在親密度Cnow[i,j]の算出方法は、以下に示す3項目の考え方に基づいている。
第1に、撮像画像内における人物iと人物jとの距離が近いほど、Cnow[i,j]を高くする。この場合、例えば、顔領域複数個分(例えば5個分)の距離を基準距離とする。そして、人物iと人物jとの距離が、基準距離と等しければ、Cnow[i,j]を0、基準距離以下であれば+(正)の値、基準距離より離れていれば−(負)の値となるようにする。
第2に、撮像画像内における人物iと人物jの顔の向きが向かい合っていれば、Cnow[i,j]を高くし、向かい合っていなければ、Cnow[i,j]を低くする。この場合、例えば、向かい合っていれば、Cnow[i,j]を+の値、向かい合っていなければ、−の値とする。
第3に、撮像画像内における人物iと人物jの笑顔度が大きいほど、Cnow[i,j]を高くする。この場合、例えば、人物iの笑顔度と人物jの笑顔度の合計値をCnow[i,j]とする。ゆえに、例えば、人物iも人物jも笑顔でないとすれば、Cnow[i,j]の値は−の値となる。
このように、撮像画像内における人物iと人物jとの距離、顔の向き、笑顔度などをもとに、+の値から−の値を取り得る現在親密度Cnow[i,j]を算出するようになっている。尚、この場合、3項目の考え方のいずれか1つに限らず、複数を組み合わせて現在親密度Cnow[i,j]を算出するようにしてもよい。
そして、これら3項目の考え方に基づく所定の演算式により、Cnow[i,j]が算出される。このとき、CPU110は、検出人物テーブルTb4に記載されている、人物iと人物jの顔座標、顔の向き、笑顔度を用いて、このCnow[i,j]を算出するようになっている。
これに対して、i=jの場合の算出方法は、以下に示す2項目の考え方に基づいている。第1に、人間関係グラフHg上で、人物iの記録枚数(すなわち過去に記録された画像の枚数)が多いほど、記録優先度P[i,j]を高くする。第2に、自動撮影を開始してから現在までに記録された人物iの画像の枚数が少ないほど、記録優先度P[i,j]を高くする。
ここで、人間関係グラフHgに記載されている人物iの記録枚数をNgraph[i]とする。また自動撮影を開始してから現在までに記録された人物iの画像の枚数をNnow[i]とする。
このとき上述した2項目の考え方に基づくと、記録優先度P[i,j]は、次式(3)により表される。
P[i,j]=Wd・Ngraph[i]+We/(Nnow[i]+1)
……(3)
尚、Wd、Weの各々は、Ngraph[i]、Nnow[i]の各々に対して重み付けを行う為の重み係数である。
このような算出方法により、人物iと人物jとの組に対する記録優先度P[i,j]が算出される。
ところで、上述した重み係数Wa、Wb、Wc、Wd、Weの各々の値は、固定でもよいし、動的に変化させるようにしてもよい。
動的に変化させる場合、まずユーザに、過去の親密度を優先するか、現在の親密度を優先するかを選択させる。
ここで、過去の親密度を優先するよう選択された場合、CPU110は、Wa、Wc、Wd>Wbとなるように、Wa、Wc、Wd、Wbを変化させる。すなわち、撮像画像から得られる現在の親密度よりも、人間関係グラフHgに記載されている過去の親密度に対する重み付けを大きくする。
一方、現在の親密度を優先するよう選択された場合、CPU110は、Wa、Wc、Wd<Wbとなるように、Wa、Wc、Wd、Wbを変化させる。すなわち、撮像画像から得られる現在の親密度を、人間関係グラフHgに記載されている過去の親密度に対する重み付けよりも大きくする。
これにより、過去の親密度と現在の親密度のどちらかを優先して、記録優先度P[i,j]を算出することができる。
ここで、再び記録対象人物選定処理手順SRT3の説明に戻る。CPU110は、人物iと順に指定した全ての人物jとの組ごとに算出した記録優先度P[i,j]の合計値を、人物iの記録優先度P[i]として得て、上述のステップSP304で肯定結果を得ると、ステップSP307に移る。
ステップSP307においてCPU110は、変数iにi+1を代入することにより、現在指定している人物iの次の人物を指定して、ステップSP301に戻る。
以降、CPU110は、ステップSP301で肯定結果を得るまで、すなわち撮像画像から検出された全ての人物の記録優先度P[i]を算出し終えるまで、ステップSP301〜ステップSP307の処理を繰り返す。
そして、全ての人物の記録優先度P[i]を算出し終えたことにより、このステップSP301で肯定結果を得ると、CPU110は、ステップSP308に移る。
ステップSP308においてCPU110は、撮像画像から検出されたN人分の記録優先度P[i]の平均値と標準偏差を算出して、次のステップSP309に移る。
ステップSP309においてCPU110は、ステップSP309で算出した平均値と標準偏差とをもとに各記録優先度P[i]の偏差値を算出する。さらにCPU110は、記録優先度P[i]の偏差値が例えば60以上である人物を、記録対象人物として選定する。そしてCPU110は、この人物の検出人物情報(顔番号ia、人物ID及び顔検出情報)を検出人物テーブルTb4から得て、これを記録対象人物情報として、図15に示す記録対象人物テーブルTb5に記載する。
記録対象人物テーブルTb5は、検出人物テーブルTbに記載された人物の中から、記録対象人物として選定された人物を管理する為のテーブルであり、人物ごとに、顔番号と人物IDと顔検出情報とが、記録対象人物情報として記載される。
CPU110は、このような記録対象人物テーブルTb5に対して、記録対象人物として選定した人物の記録対象人物情報を記載して、記録対象人物選定処理SRT3を終了する。
このような記録対象人物選定処理により、CPU110は、撮像画像から検出した人物の中から、記録対象人物を選定するようになっている。
次に、上述した自動撮影処理のステップSP44(図11)で決定する撮影パラメータについて詳しく説明する。
CPU110は、撮像画像から検出した人物の中から、画像として記録すべき人物を記録対象人物として選定し終えると、この記録対象人物の撮影に適した構図及びカメラ設定となるように撮影パラメータを決定する。
ここで決定する撮影パラメータは、例えば、ズーム倍率、パン方向の向き及び移動量、チルト方向の向き及び移動量、露出、フォーカス、記録タイミングなどである。
このうち、ズーム倍率、パン方向の向き及び移動量、チルト方向の向き及び移動量は、記録対象人物を、最適な構図で撮影する為の撮影パラメータである。
CPU110は、撮影パラメータ決定処理で、これらの撮影パラメータを決定するようになっている。
具体的に、CPU110は、まず記録対象人物の顔領域の中心が撮像画像の中心となるように、パン方向の向き及び移動量と、チルト方向の向き及び移動量とを決定する。つまり、撮影方向を決定する。因みに、記録対象人物が2人の場合には、2人の顔領域の中心を結ぶ直線の中心が撮像画像の中心となるようにする。また記録対象人物が3人以上の場合には、これらの顔領域の中心を結んでなる多角形の重心が撮像画像の中心となるようにする。
そしてCPU110は、このようにして決定したパン方向の向き及び移動量と、チルト方向の向き及び移動量とに基づいて、クレードル102の雲台部102Aを制御する。この結果、撮像画像の中心に記録対象人物を捉えた構図となる。
さらにCPU110は、記録対象人物の顔領域の総面積が、撮像画像の面積に対して一定の割合(例えば10%程度)となるように、ズーム倍率を決定する。
そしてCPU110は、このようにして決定したズーム倍率に基づき、撮像制御部116を介して撮像部115を制御する。この結果、図16に示すように、撮像画像の中心に一定の大きさで記録対象人物を捉えた構図、すなわち記録対象人物の撮影に適した構図となる。
また露出、フォーカス、記録タイミングは、記録対象人物を最適なカメラ設定で撮影する為の撮影パラメータである。
CPU110は、構図を決定した後、撮像画像上に、全ての記録対象人物の顔領域を包含する仮想的な矩形を描き、この矩形内の部分に適した露出及びフォーカス(焦点距離)を決定する。尚、露出は、絞り、シャッタスピード、ISO感度などの露出に関するパラメータにより決定するものである為、CPU110は、実際、これらのパラメータを決定するようになっている。
そしてCPU110は、このようにして決定した露出及びフォーカスに基づき、撮像制御部116を介して撮像部115を制御する。ここまでの制御により、記録対象人物の撮影に適した構図、露出及びフォーカスとなる。
そのうえで、CPU110は、記録タイミングを決定する。この記録タイミングは、例えば、所定時間後のように固定値であってもよいし、記録対象人物の笑顔度を定期的に検出してこの笑顔度が所定値以上になった時点でもよい。
そしてCPU110は、このようにして決定した記録タイミングで、上述したステップSP45の画像記録処理を行うことにより撮像画像を記録する。
このように、CPU110は、記録対象人物の撮影に適した構図及びカメラ設定となるように、ズーム倍率、パン方向とチルト方向の向き及び移動量、露出、フォーカス、記録タイミングなどの撮影パラメータを決定するようになっている。
次に、上述した自動撮影処理のステップSP45の画像記録処理について詳しく説明する。
図17に、画像記録処理の手順(これを画像記録処理手順とも呼ぶ)SRT4を示す。
CPU110は、撮影パラメータを決定することで、記録対象人物の撮影に適した構図及びカメラ設定とすると、記録対象人物の画像を記録する画像記録処理を開始して、画像記録処理手順SRT4のステップSP400に移る。
ステップSP400においてCPU110は、記録モードを選択する。記録モードとしては、撮像画像を静止画像として記録する静止画像記録モードと、動画像として記録する動画像記録モードがある。また一時的に記録した複数の静止画像の中から、記録対象人物の静止画像として最適な静止画像を選択して記録する最適画像記録モードがある。
CPU110は、これら3つの記録モードのうちの1つを選択する。この場合、ユーザにより指定された記録モードを選択するようにしてもよいし、CPU110が自動的に記録モードを選択するようにしてもよい。
ここで、CPU110が、記録モードを自動的に選択する場合、例えば、以下の4つの方法が考えられる。第1の方法として、記録モードをランダムに選択する。
第2の方法として、記録対象人物の人数に基づいて記録モードを選択する。この場合、CPU110は、記録対象人物の人数が例えば5人以下であれば、静止画像記録モードを選択し、6人以上であれば動画像記録モードを選択する。
因みに、この第2の方法で動画像記録モードを選択した場合、CPU110は、例えば、まず記録対象人物全員を撮像画像内に捉え、その後、記録対象人物を1人ずつ順に撮像画像の中心に捉えるように撮影方向を変えながら動画像を記録する。
第3の方法として、記憶媒体120の残容量に基づいて記録モードを選択する。この場合、CPU110は、記憶媒体120の残容量が、所定容量(例えば動画像を1分間記録し得る容量)以上であれば動画像記録モードを選択し、この所定容量未満であれば静止画像記録モードを選択する。
第4の方法として、撮像画像内の現在親密度の合計値に基づいて記録モードを選択する。この場合、CPU110は、撮像画像から記録対象人物間の現在親密度の合計値を算出して、この合計値が所定値(例えば100)以上であれば、最適画像選択モードを選択する。またCPU110は、この合計値が所定値未満であれば、第1乃至第3の方法で記録モードを選択する。すなわち、この第4の方法では、親しい人物の集合を撮影するような場合に、最適画像選択モードを選択するようになっている。
CPU110は、これら第1乃至第4の方法のうちの1つを用いて、記録モードを選択したのち、ステップSP401に移る。ステップSP401においてCPU110は、選択した記録モードを確認する。
このステップSP401で、選択した記録モードが静止画像記録モードであることを確認すると、CPU110は、ステップSP402に移る。ステップSP402においてCPU110は、このときの撮像画像を、画像処理部117に入力して、これを静止画像データとしてエンコードさせ、次のステップSP403に移る。
ステップSP403においてCPU110は、エンコードの結果として画像処理部117から得られた静止画像データを、静止画像ファイルとして記憶媒体120に記憶させて、画像記録処理を終了する。
また上述のステップSP401で、選択した記録モードが動画像記録モードであることを確認した場合、CPU110は、ステップSP404に移る。ステップSP404においてCPU110は、このときの撮像画像を、画像処理部117に入力して、これを動画像データとしてエンコードさせると共に、マイクロホン122から入力される音声を音声データとしてエンコードする。
その後、CPU110は、ステップSP405に移り、動画像の記録を終了するか否かの判定(これを記録終了判定とも呼ぶ)を行う。具体的に、CPU110は、以下の複数の条件のうちの1つもしくは複数に基づいて、この記録終了判定を行うようになっている。
第1の条件として、記録対象人物のうちの少なくとも一人がフレームアウトしたら、記録を終了する。第2の条件として、記録対象人物のうちの所定割合(例えば50%)以上の人物がフレームアウトしたら、記録を終了する。
第3の条件として、動画像内の記録対象人物間の現在親密度の合計値が、記録開始時の合計値から所定割合(例えば20%)以上減少したら、記録を終了する。第4の条件として、記録開始時からの経過時間が、予め設定された時間(例えば1分間)を超えていたら、記録を終了する。
尚、第1の条件及び第2の条件は、撮影方向を固定した状態で、動画像を記録しているときにのみ適用されるものとする。
これらの条件に基づいて、記録終了判定を行った後、CPU110は、ステップSP406に移る。
ステップSP406においてCPU110は、記録終了判定の結果として、動画像の記録を終了すると判定したか否かを判別する。このステップSP406で否定結果を得ると、このことはまだ動画像の記録を継続することを意味する。このときCPU110は、ステップSP404に戻り、次の撮像画像を、画像処理部117に入力して、動画像のエンコードを継続すると共に、音声のエンコードを継続する。
以降、CPU110は、ステップSP406で肯定結果を得るまで、すなわち動画像の記録を終了すると判定するまで、ステップSP404〜SP407の処理を繰り返すことで動画像の記録を継続する。
そして、動画像の記録を終了すると判定したことにより、このステップSP406で肯定結果を得ると、CPU110は、ステップSP403に移り、これまでに得られた動画像データと音声データとからなる動画像音声データを、動画像ファイルとして記憶媒体120に記憶させ、画像記録処理を終了する。
さらに上述のステップSP401で、選択した記録モードが最適画像記録モードであることを確認した場合、CPU110は、ステップSP407に移る。ステップSP407においてCPU110は、このときの撮像画像を、画像処理部117に入力して、これを静止画像データとしてエンコードさせ、次のステップSP408に移る。
ステップSP408においてCPU110は、エンコードの結果として画像処理部117から得られた静止画像データを、静止画像ファイルとして記憶媒体120のバッファ領域に一時記憶させて、次のステップSP409に移る。
ステップSP409においてCPU110は、静止画像の記録を終了するか否かを判定する記録終了判定を行う。具体的に、CPU110は、以下の複数の条件のうちの1つもしくは複数に基づいて、この記録終了判定を行うようになっている。
第1の条件として、記録対象人物のうちの少なくとも一人がフレームアウトしたら、記録を終了する。第2の条件として、記録対象人物のうちの所定割合(例えば50%)以上の人物がフレームアウトしたら、記録を終了する。
第3の条件として、静止画像内の記録対象人物間の現在親密度の合計値が、1枚目の静止画像から得られた現在親密度の合計値から所定割合(例えば20%)以上減少したら、記録を終了する。この場合、CPU110が、静止画像ごとに、記録対象人物間の現在親密度の合計値を算出するようにする。
第4の条件として、記録開始時からの経過時間が、予め設定された時間(例えば1分間)を超えていたら、記録を終了する。第5の条件として、記録開始時からの静止画像の記録枚数が、予め設定された枚数(例えば20枚)に達したら、記録を終了する。
これらの条件に基づいて、記録終了判定を行った後、CPU110は、ステップSP410に移る。
ステップSP410においてCPU110は、記録終了判定の結果として、静止画像の記録を終了すると判定したか否かを判別する。このステップSP410で否定結果を得ると、このことはまだ静止画像の記録を継続することを意味する。このときCPU110は、ステップSP407に戻り、次の撮像画像を、画像処理部117に入力して、これを静止画像データとしてエンコードする。
以降、CPU110は、ステップSP410で肯定結果を得るまで、すなわち静止画像の記録を終了すると判定するまで、ステップSP404〜SP407の処理を繰り返すことで静止画像を連続して記録する。
そして、静止画像の記録を終了すると判定したことにより、このステップSP410で肯定結果を得ると、CPU110は、ステップSP411に移る。
ステップSP411においてCPU110は、これまでに記憶媒体120のバッファに一時記録させた複数の静止画像ファイルの中から、記録対象人物の静止画像として最適な静止画像ファイルを選択する。
ここで、CPU110が、最適な静止画像ファイルを選択する場合、例えば、以下の4つの方法が考えられる。第1の方法として、静止画像ごとに記録対象人物間の現在親密度の合計値を算出して、この合計値が最大の静止画像を選択する。第2の方法として、静止画像ごとに記録対象人物の笑顔度の合計値を算出して、この合計値が最大の静止画像を選択する。
第3の方法として、向き合っている記録対象人物の数が多い静止画像を選択する。この場合、CPU110は、各記録対象人物の顔座標と顔の向きをもとに、記録対象人物ごとに、他の記録対象人物のうちの何人と向き合っているかを判別する。
第4の方法として、静止画像ごとに鮮鋭度を算出して、この鮮鋭度が最大の生成画像を選択する。尚、鮮鋭度については、既存の算出方法で算出すればよい。
CPU110は、これら第1乃至第4の方法のうちの1つまたは複数を用いて、記録対象人物の静止画像として最適な静止画像ファイルを選択した後、次のステップSP403に移る。
ステップSP403においてCPU110は、選択した静止画像ファイルを記憶媒体120のバッファ領域から通常記憶領域に移して、残りの静止画像ファイルをバッファ領域から消去させて、画像記録処理を終了する。
このような画像記録処理により、CPU110は、記録対象人物の画像を記録するようになっている。
次に、上述した自動撮影処理のステップSP46(図11)の記録履歴更新処理について詳しく説明する。
図18に、記録履歴更新処理の手順(これを記録履歴更新処理とも呼ぶ)SRT5を示す。尚、この記録履歴更新処理手順SRT5は、一部を除き、上述した人間関係グラフ更新処理手順RT2(図9及び図10)と同一であり、同一部分については、簡単に説明する。
CPU110は、記録対象人物の画像を記録し終えると、これにともなって記録履歴を更新する記録履歴更新処理を開始して、記録履歴更新処理手順SRT5のステップSP500に移る。
ステップSP500においてCPU110は、変数iに0を代入して、次のステップSP501に移る。このときの変数iは、記録対象人物テーブルTb5に記載されている記録対象人物を記録対象人物iとして順番に指定する為のものである。
ステップSP501においてCPU110は、変数iの値が、記録対象人物テーブルTb5に記載されている記録対象人物の数Nと等しいか否か判別する。すなわち、このステップSP501は、記録対象人物を全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての記録対象人物を指定し終えていないことにより、このステップSP501で否定結果を得ると、CPU110は、ステップSP502に移る。
ステップSP502においてCPU110は、記録した画像から記録対象人物iの顔領域を顔画像として切り出して、次のステップSP503に移る。尚、記録した画像が静止画像であれば、この静止画像から顔画像を切り出す一方で、動画像であれば、この動画像の例えば先頭フレームの画像から顔画像を切り出す。
ステップSP503においてCPU110は、上述した顔画像登録処理を行うことにより、記録対象人物iの顔画像を顔辞書テーブルTb3に登録して、次のステップSP504に移る。
ステップSP504においてCPU110は、今回、記録対象人物iが撮影されたことから、自動撮影を開始してから現在までに記録された記録対象人物iの画像の枚数(Nnow[i])を、現在の値+1に更新して、次のステップSP505に移る。
ステップSP505においてCPU110は、変数iにi+1を代入することにより、次の記録対象人物を指定して、ステップSP501に戻る。
以降、CPU110は、ステップSP501で肯定結果を得るまで、すなわち全ての記録対象人物iの顔画像を顔辞書テーブルTb3に登録して、記録枚数(Nnow[i])を更新し終えるまで、ステップSP501〜SP506の処理を繰り返す。
そして、全ての記録対象人物iの顔画像を顔辞書テーブルTb3に登録して、記録枚数を更新し終えたことにより、このステップSP501で肯定結果を得ると、CPU110は、ステップSP506に移る。
ここまでの処理により、記録履歴のうちの、自動撮影を開始してから現在までに記録した各人物の画像の枚数と、顔辞書Fdの更新が終了したことになる。
ステップSP506においてCPU110は、再び変数iに0を代入して、次のステップSP507に移る。このときの変数iは、記録対象人物テーブルTb5に記載されている記録対象人物を記録対象人物iとして順番に指定する為のものである。
ステップSP507においてCPU110は、変数iの値が、記録対象人物テーブルTb5に記載されている記録対象人物の数Nと等しいか否か判別する。すなわち、このステップSP507は、記録対象人物を全て指定し終えたか否かを判別するステップである。
ここで、まだ全ての記録対象人物を指定し終えていないことにより、このステップSP507で否定結果を得ると、CPU110は、ステップSP508に移る。
ステップSP508においてCPU110は、上述した人間関係グラフ更新処理のステップSP28〜SP36(図9、図10)の処理を行うことにより、記録対象人物iに関して人間関係グラフHgを更新して、次のステップSP509に移る。
ステップSP509においてCPU110は、変数iにi+1を代入することにより、次の記録対象人物を指定して、ステップSP507に戻る。
以降、CPU110は、ステップSP507で肯定結果を得るまで、すなわち全ての記録対象人物iに関して人間関係グラフHgを更新し終えるまで、ステップSP507〜SP509の処理を繰り返す。
そして、全ての記録対象人物iに関して人間関係グラフHgを更新し終えたことにより、このステップSP507で肯定結果を得ると、CPU110は、ステップSP510に移る。
ステップSP510においてCPU110は、更新し終えた人間関係グラフHgのグラフ構造をもとに、人間関係グラフHgに記録されている各人物の所属グループを更新する。
ここまでの処理により、記録履歴(自動撮影を開始してから現在までに記録した各人物の画像の枚数と、顔辞書Fdと人間関係グラフ)の更新が終了したことになる。すると、CPU110は、記録履歴更新処理を終了する。
このような記録履歴更新処理により、CPU110は、記録履歴を更新するようになっている。
ここまで説明した各処理により、DSC101は、雲台部102Aを制御して撮影方向を変えながら、撮像画像から検出した人物の中から記録対象人物を選定して、この人物に適した構図及びカメラ設定で自動撮影を行うようになっている。
この自動撮影は、CPU110が自動撮影プログラムを実行することで実現される機能である。ここで、この自動撮影プログラムの実行に直接関与するハードウェアとデータについて説明する。
図19に示すように、自動撮影プログラムApは、ROM111に格納されている。この自動撮影プログラムApは、RAM112に展開された後、CPU110に読み込まれるようになっている。
また自動撮影プログラムの実行に必要なデータは、記憶媒体120に記憶されている。このデータは、上述した人間関係グラフHgの人物属性テーブルTb1及び親密度テーブルTb2、顔辞書Fdの顔辞書テーブルTb3、顔画像ファイルFpなどである。
これらのデータは、適宜、記憶媒体制御部119を介してRAM112に展開された後、CPU110により読み込まれるようになっている。
具体的に、CPU110は、自動撮影プログラムをROM112から読み込んで実行することで、各部を制御して上述した自動撮影を行う。このときCPU110は、必要なデータを記憶媒体制御部119を介して記憶媒体120から読み込み、更新したデータについては、記憶媒体制御部119を介して記憶媒体120に書き戻す。
このようにCPU110は、自動撮影プログラムを実行するうえで、プログラム及びデータの読み込み、プログラムの実行、プログラム実行結果(例えば更新したデータ)の出力を担うようになっている。
[1−2−4.DSCの機能構成]
次に、自動撮影プログラムを実行したときのCPU110のソフトウェア的な機能構成について図20を用いて説明する。
CPU110は、自動撮影プログラムを実行することにより、撮像制御部116を介して撮像部115のカメラ制御を行うカメラ制御部200として機能する。またCPU110は、外部インタフェース127を介してクレードル102を制御するクレードル制御部201として機能する。
さらにCPU110は、画像(例えばカメラ制御部200を介して得られた撮像画像)Piから人物を検出して、この人物の情報(検出人物情報)を検出人物テーブルTb4に記載する人物検出部202として機能する。
またCPU110は、人物検出部202により検出した人物の中から、記録対象人物を選定して、この人物の情報(記録対象人物情報)を記録対象人物テーブルTb5に記載する記録対象人物選定部203として機能する。
さらにCPU110は、記録対象人物選定部203により選定された記録対象人物の撮影に適した構図及びカメラ設定となるように撮影パラメータを決定する撮影パラメータ決定部204として機能する。
この撮影パラメータ決定部204により決定された撮影パラメータは、カメラ制御部200及びクレードル制御部201に渡される。カメラ制御部200は、この撮影パラメータに基づいて、撮像制御部116を介して撮像部115のズーム、カメラ設定などを制御する。またクレードル制御部201は、この撮影パラメータに基づいて、外部インタフェース127を介してクレードル102の雲台部102Aのパン・チルト機構を制御する。
さらにCPU110は、カメラ制御部200を介して得られる撮像画像Piを記録する画像記録部205として機能する。さらにCPU110は、撮像画像Piの記録にともなって、記録履歴を更新する記録履歴更新部206として機能する。
さらにCPU110は、記憶媒体制御部119を介して記憶媒体120へのデータの読み書きを制御するデータアクセス部207として機能する。データアクセス部207は、人物検出部202、記録対象人物選定部203、画像記録部205及び記録履歴更新部206と、記憶媒体制御部119との間で、記憶媒体120に記憶されているデータの授受を行う。
このような機能構成により、CPU110は、上述した自動撮影を実現するようになっている。
[1−2−5.動作及び効果]
以上の構成において、DSC101は、クレードル102に載置された状態で、自動撮影モードに切り替えるよう指示されると、自動撮影モードで動作する。
するとDSC101は、クレードル102の雲台部102Aのパン・チルト機構を制御することにより撮影方向を決定して、このとき得られる撮像画像から人物を検出する。
次にDSC101は、検出した人物の中から画像として記録すべき記録対象人物を選定する。このときDSC101は、人間関係グラフHgを用いて、検出した人物ごとに記録優先度を算出する。このとき算出される記録優先度は、検出された他の人物との関係性が高い人物ほど高くなるようになっている。そしてDSC101は、この記録優先度に基づいて記録対象人物を選定する。
記録対象人物を選定し終えると、DSC101は、記録対象人物の撮影に適した構図及びカメラ設定となるように撮影パラメータを決定する。
そしてDSC101は、この撮影パラメータに基づいて各部を制御することで、記録対象人物の撮影に適した構図及びカメラ設定で、記録対象人物の画像を記録する。
このようにして画像を記録し終えると、DSC101は、撮影方向を別の方向に変えて、再び上述の動作を繰り返す。
このように、DSC101は、自動的に撮影方向を変えながら、そのときどきの撮像画像から検出した人物の中から、他の検出した人物との関係性が高い人物を選んで、この人物の撮影に適した撮影パラメータでこの人物を自動撮影する。
こうすることで、DSC101は、ユーザの手を煩わすことなく、関係性が高い人物同士(例えば仲の良い人物同士)が際立つ画像を自動的に記録することができる。すなわちDSC101は、被写体となる人物にとって有用で価値のある画像を自動的に記録することができる。
またDSC101は、記録優先度を算出するときに、検出した他の人物と共に人間関係グラフHgに記載されている人物の記録優先度を高くするようにした。こうすることで、DSC101は、検出した他の人物と共に人間関係グラフHgに記載されている人物(つまり過去に撮影したことのある人物)を優先的に撮影することができる。
さらにDSC101は、検出した他の人物との過去の親密度(人間関係グラフHgに記載されている親密度)が高い人物ほど、記録優先度を高くするようにした。こうすることで、DSC101は、検出した他の人物との過去の親密度が高い人物を優先的に撮影することができる。
さらにDSC101は、検出した他の人物と同じ所属グループ(人間関係グラフHgに記載されている所属グループ)に属している人物の記録優先度を高くするようにした。こうすることで、DSC101は、検出した他の人物と同じ所属グループに属している人物を優先的に撮影することができる。
さらにDSC101は、検出した他の人物との現在の親密度(撮像画像から得られた親密度)が高い人物ほど、記録優先度を高くするようにした。こうすることで、DSC101は、検出した他の人物との現在の親密度が高い人物を優先的に撮影することができる。
さらにDSC101は、過去に記録された画像の枚数(人間関係グラフHgに記載されている記録枚数)が多い人物ほど、記録優先度を高くするようにした。こうすることでDSC101は、過去に記録された画像の枚数が多い人物を優先的に撮影することができる。
さらにDSC101は、自動撮影を開始してから、現在までに記録された画像の枚数が少ない人物ほど、記録優先度を高くするようにした。こうすることでDSC101は、自動撮影時に、撮影する人物に偏りが生じてしまうことを防止することができる。
次にDSC101は、検出した人物の中から画像として記録すべき記録対象人物を選定する。このときDSC101は、人間関係グラフHgを利用して、検出した人物ごとに記録優先度を算出する。このとき算出される記録優先度は、検出された他の人物との関係性が高い人物ほど高くなるようになっている。そしてDSC101は、この記録優先度に基づいて記録対象人物を選定する。
またDSC101は、記録対象人物の画像を記録するときのモードとして、動画像記録モードを有している。この動画像記録モードでは、DSC101は、記録対象人物を一人ずつ順に撮像画像の中心に捉えるように撮影方向を変えながら動画像を記録する。こうすることで、DSC101は、記録対象人物の各々を順に注目していくような動画像を記録することができる。この動画像記録モードは、記録対象人物の数が多すぎて、そのままでは誰に注目しているのかわからなくなってしまうような場合に効果的である。
さらにDSC101は、画像を記録するときのモードとして、複数の静止画像の中から最適な静止画像を選択して記録する最適画像記録モードを有している。この最適画像記録モードでは、DSC101は、複数の静止画像の中から、記録対象人物同士の親密度が最も高い画像、もしくは鮮鋭度が最も高い画像を選択して記録する。こうすることで、DSC101は、複数の静止画像の中から、被写体となる人物にとって最も有用と思われる画像を記録することができる。
またDSC101は、記録した画像から、記録対象人物同士の親密度を算出して、この親密度を、人間関係グラフHgにフィードバックすることで、人間関係グラフHgを更新する。こうすることで、DSC101は、ユーザの手を煩わすことなく、画像を記録するごとに、自動的に人間関係グラフHgを更新することができる。
以上の構成によれば、DSC101は、人間関係グラフHgを用いて、撮像画像に含まれている人物の中から画像として記録すべき人物(記録対象人物)を選定し、この人物の撮影に適した構図及びカメラ設定で自動的に撮影を行うようにした。これにより、DSC101は、関係性が高い人物同士を自動的に撮影することなどができ、かくして被写体となる人物にとって有用な画像(例えば仲の良い人が一緒に写っている画像)自動的に撮影することができる。
<2.他の実施の形態>
[2−1.他の実施の形態1]
尚、上述した実施の形態では、DSC101が、自動的に人間関係グラフHgを更新するようにした。これに限らず、更新された人間関係グラフHgをユーザが編集できるようにしてもよい。この場合、CPU110は、人間関係グラフHgの人物属性テーブルTb1と親密度テーブルTb2とをディスプレイ114に表示させ、操作部113の操作に応じてこれらに記載された内容を更新する。同様に、顔辞書Fdについても、ユーザが編集できるようにしてもよい。
[2−2.他の実施の形態2]
また、上述した実施の形態では、DSC101が、動画像も静止画像と同様1つの画像として扱い、例えば、自動撮影モードで動画像を記録した場合、画像の記録枚数を現在の値+1と更新するようにした。これに限らず、動画像を複数の画像として扱うようにしてもよい。
例えば、動画像を記録した場合に、この動画像に、或る人物が含まれるフレームがN個あったとする。この場合、DSC101は、この人物の画像の記録枚数を現在の値+Nと更新する。このように、動画像を、静止画像(すなわちフレーム)の集合として扱うようにしてもよい。
[2−3.他の実施の形態3]
さらに、上述した実施の形態では、画像を記録したときに、この画像から検出された人物iと人物jとの親密度を、人間関係グラフHg上で更新するようにした。このとき、DSC101は、記録した画像をもとに算出した現在親密度に、人間関係グラフHgに記載されている過去親密度を加えた値を、新たな親密度とするようにした。
これに限らず、例えば、人間関係グラフHgの親密度テーブルTb2に、親密度ごとの更新日時を記載するようにして、この更新日時に基づいて、過去親密度を重み付けするようにしてもよい。
この場合、人物i側から見た人物iと人物jとの過去親密度をCpast[i,j]、現在親密度をCnow[i,j]とすると、新たな親密度Cgraph[i,j]は、次式(4)により表される。
Cgraph[i,j]=Wp・Cpast[i,j]+Cnow[i,j]
……(4)
ここで、Wpが、過去親密度Cpast[i,j]に対して重み付けを行う為の重み付け係数である。この重み付け係数を、過去親密度の更新日時(すなわち人物iと人物jの直近の撮影日時)が古いほど小さくするようにすれば、親密度を更新するときに、過去親密度に対する重み付けが小さくなる。こうすることで、現在親密度を重視した親密度を得ることができる。
さらに、これに限らず、現在親密度を重視するか、過去親密度を重視するかに応じて、これらのどちらか一方に対して重み付けを行うようにしてもよい。
[2−4.他の実施の形態4]
さらに、上述した実施の形態では、人物iと人物jとの組に対する記録優先度P[i,j]を算出するときに、重み係数Wa、Wb、Wc、Wd、Weの各々の値を動的に変化させるようにしてもよいとした。
ここで、重み係数Waは、上述したように、人間関係グラフHgに記載されている人物iと人物jとの親密度に対する重み係数である。また重み係数Wbは、画像をもとに算出した人物iと人物jとの現在の親密度に対する重み係数である。さらに重み係数Wcは、人間関係グラフHg上で、人物iと人物jとが共に所属する所属グループの数に対する重み係数である。
さらに重み係数Wdは、人間関係グラフHgに記載されている人物iの記録枚数に対する重み係数である。さらに重み係数Wfは、自動撮影を開始してから現在までに記録された人物iの画像の枚数に対する重み係数である。
そして上述した実施の形態では、ユーザが過去の親密度を優先すると選択したか、現在の親密度を優先すると選択したかに応じて、重み係数Wa、Wb、Wc、Wd、Weを動的に変化させるようにした。
これに限らず、自動撮影時の画像の記録枚数や撮影時間に応じて重み係数Wa、Wb、Wc、Wd、Weを動的に変化させるようにしてもよい。
例えば、自動撮影開始からの画像の総記録枚数をTとして、これらの画像から人間関係グラフHgに含まれる人物がM人検出されているとすると、一人当たりの平均記録枚数はT/Mとなる。
ここで、例えば、人物iの自動撮影開始からの画像の記録枚数をtとして、t<T/Mの場合に、We>Wa、Wb、Wc、Wdとなるように、Wa、Wb、Wc、Wd、Weを変化させる。すなわち、人物iの記録枚数tが一人当たりの平均記録枚数T/Mより少ない場合に、画像の枚数に対する重み付けを大きくする。
こうすることで、人物iの記録優先度P[i]を大きくすることができ、結果として、自動撮影時に、記録される画像に人物の偏りができてしまうことを防止することができる。
また、別の手法として、例えば、T/Mの値が所定値以上(例えば10枚以上)になった場合に、Wa、Wc、Wd<Wbとなるように、これらを変化させる。すなわち、一人当たりの平均記録枚数T/Mが所定枚数以上となったら、画像から得られる現在の親密度を、人間関係グラフHgに記載されている過去の親密度に対する重み付けよりも大きくする。
これにより、一人当たりの平均記録枚数T/Mが所定枚数以上となったら、現在の親密度を優先するようなことができる。
さらに、別の手法として、例えば、ユーザにより設定された撮影時間(例えば2時間)のうちの前半(前半1時間)は、Wa、Wc、Wd>Wbとして、後半(後半1時間)は、Wa、Wc、Wd<Wbとなるように、これらを変化させる。こうすることで、前半は、人間関係グラフHgに記載されている過去の親密度を重視した撮影を行い、後半は、画像から得られる現在の親密度を重視した撮影を行うようなことができる。
[2−5.他の実施の形態5]
さらに上述した実施の形態では、最適画像記録モードを選択した場合に、一時的に記録した複数の静止画像の中から、記録対象人物の静止画像として最適な静止画像を選択して、これを記録するようにした。
これに限らず、一時的に記録した動画像の複数のフレームの中から、記録対象人物の静止画像として記録するのに最適なフレームを抽出して、これを記録するようにしてもよい。
[2−6.他の実施の形態6]
さらに上述した実施の形態では、人間関係グラフHgの人物属性テーブルTb1に、性別を人物の属性情報として記載するようにした。ここで、この人物属性テーブルTb1に記載された性別と親密度テーブルTb2に記載された親密度を参照すれば、各人物が男性と女性のどちらと親密度が高い傾向にあるかを判別することができる。
そのうえで、例えば、人物iと人物jとの組に対する記録優先度P[i,j]の算出時に、人物iが男性と親密度が高い傾向にあるならば、人物jが男性である場合に、女性である場合よりも記録優先度P[i,j]を高くするようにする。
このようにすれば、被写体となる人物にとって一段と有用な画像を記録することができる。
また、例えば、自動撮影開始から記録した画像に含まれる人物の性別に偏りがでないように、記録優先度P[i,j]の算出時に、性別に対して重み付けを行うようにしてもよい。
さらに、人物の性別に限らず、人物の年代(例えば20代)を人物属性テーブルTb1に記載するようにしてもよい。
こうすることで、性別と同様、各人物がどの年代と親密度が高い傾向にあるかを判別することができる。
そして性別と同様に、記録優先度P[i,j]の算出にこの年代を利用すれば、被写体となる人物に対して一段と有用な画像を記録することができる。
さらに、自動撮影開始から記録した画像に含まれる人物の年代に偏りがでないように、記録優先度P[i,j]の算出時に、年代に対して重み付けを行うようにしてもよい。
このように、記録優先度P[i,j]の算出時に、人物属性テーブルTb1に記載された属性情報を利用するようにしてもよい。
尚、各人物の年代も、性別と同様、顔画像から判別するようにすればよい。実際、
顔画像から人物の年代を判別する方法については、種々のアルゴリズムが知られている。例えば、顔画像から、顔の形状や色、髪型、皺、目や口の位置などの複数の特徴量を検出する。さらにこれら複数の特徴量を所定数のグループに分類して、グループごとに、予め用意された年代ごとの特徴量と比較することで年代を判別する。そしてグループごとに判別された年代のうち、例えば、最も多く判別された年代を、この顔画像の人物の年代と判別する。
[2−7.他の実施の形態7]
さらに、上述した実施の形態では、DSC101と、パン・チルト機構を有するクレードル102とで構成される自動撮影システムに本発明を適用した例を説明した。これに限らず、クレードル102と同様のパン・チルト機構を有するDSCに本発明を適用するようにしてもよい。
また例えば、DSC側にもクレードル側にもパン・チルト機構を有さない自動撮影システムに本発明を適用するようにしてもよい。
この場合、当然のことながら、DSCは、撮影方向を変えることができない。その代わりに、例えば、記録対象人物の顔領域が画像の中心で一定の割合となるように、撮像画像から一部を抽出して、この部分をデジタルズームにより拡大する。そしてDSCが、この部分の画像を記録する。
このようにすれば、パン・チルト機構を有さない自動撮影システムであっても、記録対象人物が際立つ画像を記録することができるので、例えばDSCのみで、被写体となる人物にとって有用な画像を撮影することができる。
また、記録対象人物を選定した後に、記録対象人物の顔領域に適した露出及びフォーカスを設定するだけでもよく、このようにしただけでも、記録対象人物が際立つ画像を記録することができる。
[2−8.他の実施の形態8]
さらに、上述した実施の形態では、人間関係グラフHgに記載された親密度を用いて、検出した人物の中から記録対象人物を選定するようにした。これに限らず、人物間の関係を表す指標(すなわち関係度)となる情報であれば、親密度以外の情報を用いて、記録対象人物を選定するようにしてもよい。
[2−9.他の実施の形態9]
さらに、上述した実施の形態では、人間関係グラフHg及び顔辞書Fdのデータを、DSC101の記憶媒体120に記憶させるようにした。これに限らず、例えば、DSC101に、フラッシュメモリを設けて、このフラッシュメモリに、人間関係グラフHg及び顔辞書Fdのデータを記憶させるようにしてもよい。
[2−10.他の実施の形態10]
さらに、上述した実施の形態では、撮像装置としてのDSC101に、撮像部としての撮像部115を設けるようにした。またこのDSC101に、人間関係情報記憶制御部、人物検出部、記録対象人物選定部、撮像画像記録制御部、人間関係情報更新部としてのCPU110を設けるようにした。さらにこのDSC101に記憶部としての記憶媒体120を設けるようにして。さらにこのDSC101に接続部としての外部インタフェース部127を設けるようにした。
本発明はこれに限らず、同様の機能を有するのであれば、上述したDSC101の各機能部を、他の種々のハードウェアもしくはソフトウェアにより構成するようにしてもよい。
さらに上述した実施の形態では、DSC101に本発明を適用するようにした。これに限らず、カメラ機能を有する機器であれば、デジタルビデオカメラ、パーソナルコンピュータ、携帯型電話機、ゲーム機など、この他種々の機器に適用するようにしてもよく、また適用することができる。
[2−11.他の実施の形態11]
さらに上述した実施の形態では、各種処理を実行するためのプログラムを、DSC101のROM111に書き込んでおくようにした。
これに限らず、このプログラムを例えば記憶媒体120に書き込んでおき、DSC101のCPU110が、このプログラムを記憶媒体120から読み出して実行するようにしてもよい。またDSC101に、フラッシュメモリと、ネットワーク通信部を設けて、このプログラムを、ネットワーク通信部を介してダウンロードしてフラッシュメモリにインストールするようにしてもよい。
[2−12.他の実施の形態12]
さらに本発明は、上述した実施の形態と他の実施の形態とに限定されるものではない。すなわち本発明は、上述した実施の形態と他の実施の形態の一部または全部を任意に組み合わせた形態、もしくは一部を抽出した形態にもその適用範囲が及ぶものである。
さらに上述した実施の形態と他の実施の形態は一例であり、本発明の要旨を逸脱しない範囲であれば、この他、種々の形態に本発明を適用するようにしてもよく、また適用することができる。