以下、本発明の実施の形態について図を参照して説明する。図1と図2は、本発明の実施形態としてのデジタルスチルカメラの構成を表している。このデジタルスチルカメラ1は、本体11と本体11から必要に応じて突出する鏡筒12により構成されている。
本体11の上面の右端部近傍にはダイヤル14が設けられている。ダイヤル14の左側にはパワーボタン13が設けられている。パワーボタン13は、デジタルスチルカメラ1の電源をオンまたオフするとき操作される。ダイヤル14は、シーン1(SCN1)乃至シーン6(SCN6)、フルオート(カメラの図形のマーク)、およびプログラムモード(P)のいずれかを選択するとき操作される。
シーン1乃至シーン6には、風景、ポートレート、夜景、夜景+人などの各種の撮影条件が対応付けられている。例えばシーン1が選択された場合、風景を撮影するのに好適な撮影条件が設定される。シーン2が選択された場合、ポートレートを撮影する場合に好適な撮影条件が設定される。フルオートが選択された場合、撮影に必要なピント合わせ、露出、ホワイトバランスの調整といった各種の撮影条件が全て自動的に設定される。プログラムモードが選択された場合、フルオートと同様に撮影に必要な調整が自動的に設定されるが、ホワイトバランスやEV値(露出補正値)などの各種設定項目をユーザが意図的に設定することが可能となる。
ダイヤル14の中心には、レリーズボタン15が配置されている。レリーズボタン15はユーザが撮像画像を記録するとき操作される。
本体11の背面側のほぼ中央には、各種の画像を表示するLCD(Liquid Crystal Display)21が配置されている。LCD21の右上にはスイッチ22が配置されている。このスイッチ22は、テレまたはワイドを設定するとき操作される。スイッチ22の下側にはメニューボタン23が配置されている。このメニューボタン23は、LCD21にメニューを表示するときユーザにより操作される。メニューボタン23の下側にはボタン24が配置されている。このボタン24は上下左右方向に操作することが可能とされており、上側に操作されたときフラッシュが選択され、下側に操作されたときタイマが設定され、右側に操作されたときマクロ撮影のモードが設定され、左側に操作されたときマニュアルでホワイトバランスの設定が可能となる。
LCD21の左側には再生ボタン25が配置されている。この再生ボタン25は、撮影した画像を再生するとき操作される。再生ボタン25の下側には顔ボタン26が配置されている。この顔ボタン26は、LCD21に記録済みの画像が読み出され、表示されている状態で操作されたとき、その表示されている全体画像に含まれる顔画像が操作される毎に順次表示される。顔ボタン26の下側には表示ボタン27が配置されている。表示ボタン27は、OSD(On Screen Display)情報を表示したり、その表示を消去するとき操作される。表示ボタン27の下側にはゴミ箱ボタン28が配置されている。このゴミ箱ボタン28は不要なファイル等を消去するとき操作される。なお、全体画像とは、部分の画像である顔画像に対して、顔画像とそれ以外の部分を含む1枚の全体の画像を意味する。
図3は、デジタルスチルカメラ1の内部の基本的構成を表している。カメラブロック41には、レンズ、CCD(Charge Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)などの撮像素子、タイミングジェネレータ等が内蔵されている。画像処理ブロック42は、カメラブロック41より出力された画像信号について、ホワイトバランス、明るさ調整、ガンマ補正等の処理を施し、画像表示装置44に出力する。画像処理ブロック42は、顔認識ブロック43を内蔵しており、この顔認識ブロック43は、1枚の全体画像中に存在する顔画像を認識する。画像処理装置44は、画像処理ブロック42より供給された画像データに基づき画像を表示する。この画像表示装置44は図2のLCD21や、電子ビューファインダを含む。
SDRAM(Synchronous Dynamic Random Access Memory)45は、画像データ、その他の各種のデータを一時的に保持する。操作ブロック46は各種のボタンやスイッチなどにより構成される。図1のパワーボタン13、ダイヤル14、スイッチ22、メニューボタン23、ボタン24、再生ボタン25、顔ボタン26、表示ボタン27、ゴミ箱ボタン28などは、この操作ブロック46に含まれる。操作ブロック46は操作に応じた信号を制御ブロック47に出力する。
制御ブロック47は、操作ブロック46から供給されるユーザの指示に基づいて各ブロックの動作を制御する。フラッシュメモリ48には、ホワイトバランス、その他各種の撮影条件などを設定するためのパラメータなどが記憶されている。リムーバブルメモリコントローラ49は、制御ブロック47により制御され、リムーバブルメモリ50に記憶されている画像データを読み出したり、そこに画像データなどを記憶させる。リムーバブルメモリ50は、例えばメモリスティック(登録商標)などのフラッシュメモリにより構成される。
制御ブロック47は、例えば図4に示される機能的構成を有している。読出部71は、各種のデータや情報を読み出す。判定部72は各種の判定処理を実行する。保持部73は画像データを保持する。記録部74はリムーバブルメモリコントローラ49を介して画像データをリムーバブルメモリ50に記憶させる。表示部75は画像を表示する。選択部76は顔画像を選択する。演算部77は輝度のヒストグラムを演算したり、座標の演算を行う。補正部78はガンマ補正を行う。
次に、図5のフローチャートを参照して、デジタルスチルカメラ1の画像記録処理について説明する。ユーザがパワーボタン13を操作して電源をオンして撮像の開始を指示したとき、制御ブロック47は各ブロックを制御し、撮像を開始させる。このときカメラブロック41は、被写体の画像を撮像し、対応する画像信号を画像処理ブロック42に出力する。画像処理ブロック42は、カメラブロック41より供給された画像信号をSDRAM45に一旦記憶させる。SDRAM45に記憶された画像データは、画像処理ブロック42によりそこから読み出され画像表示装置44に出力され、そのLCD21に表示される。このようにして、プレビュー画像が表示される。
またユーザは、メニューボタン23を操作することでオートフォーカス(AF)モードを設定する。オートフォーカスモードとしては、顔認識オートフォーカスモード、コンティニュアスオートフォーカスモード、またはシングルオートフォーカスモードのいずれかが設定される。ユーザが操作ブロック46を操作してオートフォーカスモードを設定すると、そのモードが保持部73によりフラッシュメモリ48に記憶される。
ステップS1において、読出部71はフォーカスモードを読み出す。すなわちフラッシュメモリ48に記憶されているフォーカスモードが読み出される。そしてステップS2において判定部72は読み出されたフォーカスモードが顔認識オートフォーカスモードであるかを判定する。顔認識オートフォーカスモードである場合には、ステップS3において顔認識ブロック43により顔認識処理が実行される。この顔認識処理の詳細は図8のフローチャート参照して後述するが、これによりLCD21に表示されている全体画像中に含まれる顔画像の位置情報が検出される。検出された位置情報は、SDRAM45に一時的に記録される。ステップS4において判定部72はレリーズボタンが全押しされたかを判定する。
レリーズボタン15が全押しされていない場合には、処理はステップS3に戻り、それ以降の処理が繰り返し実行される。レリーズボタン15が全押しされたと判定された場合、ステップS5において、保持部73は画像データの各種処理を行い、画像データを保持する。すなわちレリーズボタン15が全押しされたタイミングにおいてSDRAM45に保持されている画像データの更新が禁止される。そしてステップS6において、記録部74は画像データと顔の位置情報をリムーバブルメモリに記録する。すなわちSDRAM45に記録されている画像データが読み出され、リムーバブルメモリコントローラ49に供給される。リムーバブルメモリコントローラ49は、この画像データと顔の位置情報をリムーバブルメモリ50に供給し、記録する。
以上のようにして顔認識オートフォーカスモードが設定されている場合には、画像データだけでなく、それに対応する顔の位置情報がリムーバブルメモリ50に記録される。
図6はリムーバブルメモリ50のメモリ領域の構造を表している。MBR(Master Boot Record)には、メディアを構成するパーティションの位置やサイズ、OS種別を示すIDなどが記録される。PBR(Partion Boot Recorder)には、OS起動時に使用するアクティブパーティションが記述されている。FAT(File Allocation Table)にはファイルの物理的な配置を管理する情報が記述される。ROOTDIRには階層化ディレクトリ構造におけるドライブの最上位のディレクトリが記述される。
画像ファイルは、Exif、サムネイル、顔の位置情報、並びに主画像ファイルを単位として構成される。Exif(Exchangeable Image File Format)は、JEIDA(Japanese Electronic Industry Development Association)によって提唱されたデジタルスチルカメラ用の画像ファイル規格であり、画像についての情報や撮影日時などの付加情報が記録される。サムネイルは対応する記録用の最大の大きさの主画像を、表示するLCD等の大きさに合うように縮小した表示用の画像である。顔の位置情報は主画像ファイルに記録されている主画像(全体画像)中に存在する顔画像の位置を表す情報である。顔の位置情報はExif内のメーカノートに記録するようにしてもよい。主画像データは主画像の画像データであり、主画像ファイルに記録される。主画像もサムネイルも全体画像である。もちろん、サムネイル中の顔の位置も主画像とサムネイル画の比率より容易に求められる。
図5に戻って、ステップS2において設定されているモードが顔認識オートフォーカスモードではないと判定された場合、ステップS7において判定部72はコンティニュアスオートフォーカスモードかを判定する。設定されているオートフォーカスモードがコンティニュアスオートフォーカスモードである場合には、ステップS8において、そのモードに対応する処理が実行される。設定されているモードがコンティニュアスオートフォーカスモードでないと判定された場合には、設定されているオートフォーカスモードは、結局シングルオートフォーカスモードということになる。そこでこの場合には、ステップS9において、そのモードに対応する処理が実行される。
コンティニュアスオートフォーカスモードにおいては、合焦の有無にかかわりなくレリーズが可能とされる。またシングルオートフォーカスモードにおいては合焦時にシャッタが切れるように動作が制御される。
次にステップ3における顔認識処理について説明するが、この顔認識処理は、顔認識ブロック43により実行される。この処理を実行するため、顔認識ブロック43は、図7に示されるように構成されている。顔認識ブロック41の入力画像スケール変換部71は、主画像を読み出し、その主画像の縮小率を異なる複数のスケール画像に変換する。ウィンドウ切り出し部72は、入力画像スケール変換部71によりスケールが変換された画像からウィンドウ切り出す。テンプレートマッチング部73は、ウィンドウ切り出し部72により切り出されたウィンドウの画像を、あらかじめ用意されているテンプレートの画像とマッチングする。前処理部74は、テンプレートマッチング部73より供給されたスコア画像についてベクトル変換し、得られたベクトル群を1本のパターンベクトルに変換する。パターン識別部75は、前処理部74より供給されたスコア画像が顔画像かどうかの識別を行う。重なり判定部76はスコア画像同士が重なり合う領域を除去する。
次に図8のフローチャート参照して、図5のステップS3における顔認識処理の詳細について説明する。
ステップS31において、入力画像スケール変換部71は、フレーム画像を読み出す。すなわちSDRAM45に記憶されている主画像がここで読み出される。ステップS32において入力画像スケール変換部71は、主画像から顔検出処理を行う基準の大きさのスケール画を作り出し、さらに縮小率の異なる複数のスケール画像に変換する。例えば、基準のスケール画像が320×240ピクセル(=76800ピクセル)である場合、これを0.8倍ずつ順次縮小して、5段階のスケール画像に変換される。これにより、1.0,0.8,0.64,0.51,0.41倍の第1のスケール画像乃至第5のスケール画像がそれぞれ生成される。この顔検出すべき画像サイズが大きくなった場合、スケールを適宜より細かく設定し、一辺が20ピクセル以下にならない範囲で縮小が行われる。
ステップS33において、ウィンドウ切り出し部72は、ウィンドウ領域を切り出す。例えば、まず第1のスケール画像に対して画像左上を起点として順に画像右下まで2ピクセル分を右側または下側にずらしながらスキャンするようにして、20×20ピクセル(=400ピクセル)の矩形領域(ウィンドウ領域)が順次切り出される。
ステップS34において、テンプレートマッチング部73は、関数曲線に変換する処理を実行する。すなわちウィンドウ領域の画像(ウィンドウ画像)について、正規化相関法や誤差自乗法などの演算処理を行って、ピーク値を持つ関数曲線に変換される。ステップS35において、テンプレートマッチング部73は、関数のピーク値は閾値より大きいかを判定する。すなわち認識性が落ちない程度に十分に低い閾値があらかじめ設定されており(例えば100人程度の人物の平均からなる平均的な顔画像をテンプレートとして判断基準となる閾値が設定されており)、この閾値を基準にして、ウィンドウ画像が顔画像か否かが判定される。
ステップS35において関数のピーク値が閾値より大きいと判定された場合(ウィンドウ画像に人物の顔が含まれていると判定された場合)、ステップS36において前処理部74は前処理を実行する。この前処理の詳細は、図9のフローチャートを参照して後述するが、これにより人物の顔画像を含むウィンドウ画像(スコア画像)がベクトルに変換され、得られたベクトル群がさらに1本のパターンベクトルに変換される。
ステップS37においてパターン識別部75は、パターン識別処理を実行する。この処理の詳細は、図10のフローチャートを参照して後述するが、これにより顔の位置情報が生成、記憶される。
ステップS38において、パターン識別部75はいまの処理中のスケールのすべてのスケール画像を処理したかを判定する。例えばいま第1のスケールの画像を処理している場合には、第1のスケールのすべてのスケール画像を処理したかが判定される。まだ処理していない第1のスケールの画像が存在する場合には、ステップS39においてウィンドウ切り出し部72は、第1のスケールの他のスケール画像を選択する。その後処理はステップS33に戻り、それ以降の処理が繰り返し実行される。
ステップS38において、いま処理中のスケールのすべてのスケール画像を処理したと判定された場合、ステップS40においてパターン識別部75はすべてのスケール画像を処理したかを判定する。例えば第1のスケールから第5のスケールまで存在する場合、第5のスケールまですべての画像を処理したかが判定される。まだ処理してないスケールの画像が存在する場合には、ステップS41においてウィンドウ切り出し部72は、他のスケールのスケール画像を選択する。その後処理はステップS33に戻り、それ以降の処理が繰り返し実行される。
以上のようにして、第1のスケール乃至第5のスケールのすべてのスケールの画像についての処理が終了したとき、ステップS42において、重なり判定部76は重なり処理を実行する。この重なり処理の詳細は、図12のフローチャートを参照して後述するが、これにより重なり合う領域を除去する処理が実行される。
ステップS35において、関数のピーク値が閾値より大きくないと判定された場合(スコア画像に人の顔の画像が含まれていないと判定された場合)、ステップS36乃至ステップS42の処理はスキップされる。
次に図9のフローチャート参照して、図8のステップS36における前処理の詳細について説明する。
ステップS71において前処理部74は、スコア画像の中央部分を抽出する。すなわち20×20ピクセルで構成される矩形領域のスコア画像から、人間の顔領域と無関係である4隅を除去することで、400ピクセルから360ピクセルの領域が抽出される。次にステップS72において、前処理部74は濃淡値を補正する。具体的には撮影時の照明により濃淡で表される被写体の条件ばらつきを解消するため、360ピクセルのスコア画像のうち、顔画像として最適な部位を基準とする平面を形成するように平均自乗誤差法を用いて濃淡値が補正される。
ステップS73において、前処理部74はヒストグラム平滑化処理する。すなわちスコア画像のコントラストを強調した結果を、ヒストグラム平滑化処理を行うことで、カメラブロック41のゲインや照明の強弱によらずに顔画像が検出ができるようにする。次に、ステップS74において前処理部74はスコア画像をパターンベクトルに変換する。具体的には、ガボアフィルタリング処理により、360ピクセルのスコア画像がベクトルに変換され、得られたベクトル群がさらに1本のパターンベクトルに変換される。
次に、図10のフローチャート参照して、図8のステップS37におけるパターン識別処理の詳細ついて説明する。
ステップS91において、パターン識別部75はパターンベクトルを識別関数と比較する。すなわち前処理部74により生成されたパターンベクトルが、学習用のデータを用いてあらかじめ得られた暫定的な識別関数と比較される。具体的には、前処理部74より得られたパターンベクトルとしての360ピクセル分のスコア画像に対して、サポートベクターマシーンを用いて顔画像の検出が行われる。
ステップS92においてパターン識別部75は顔画像が検出されたかを判定する。顔画像が検出された場合には、ステップS93においてパターン識別部75はスコア画像の中心の座標、大きさ(縦横ピクセル数)、縮小率をリスト化し記憶する。ここで縮小率とはスケール画像の主画像に対する縮小率を意味する。
図11は座標データの例を表している。全体画像である主画像100は横方向X0ピクセル、縦方向Y0ピクセルで構成されている。この主画像100中の顔画像101は、その中心が座標(p1,q1)となっている。顔画像101の縦方向の長さはb1、幅はa1である。この場合、顔画像101の最上端の点の座標は(p1,q1-b1/2)となる。顔画像101の最も下側の点の座標は(p1,q1+b1/2)となる。顔画像101の最も左側の点の座標は(p1-a1/2,q1)となり、最も右側の点の座標は(p1+a1/2,q1)となる。
主画像100のアスペクト比が3対4である場合(Y0とX0の比が3対4である場合)、顔画像101を拡大して表示する場合に縦方向の余裕のピクセル数をα1とするとき、このα1は顔画像101の長さb1に対する一定の比率として表される。この顔画像101を3対4のアスペクト比で拡大して表示する場合に表示される領域としての顔領域101Aの幅は(b1+2α1)×4/3となり、縦方向の長さはb1+2α1となる。
同様に顔画像102は、その中心座標が(p2,q2)となっている。顔画像102の縦方向の長さはb2、横方向の長さはa2となっている。顔画像102の最も上側の点の座標は(p2,q2-b2/2)となり、最も下側の点の座標は(p2,q2+b2/2)となる。顔画像102の最も左側の点の座標は(p2-a2/2,q2)となり、最も右側の点の座標は(p2+a2/2,q2)となる。
また、顔画像102の縦方向の長さb2に対応して演算される余裕の長さはα2とされる。顔画像102を3対4のアスペクト比として表示する場合の顔領域102Aの横方向の幅は(b2+2α2)×4/3となり、高さはb2+2α2となる。
顔画像101は、縦方向の長さb1または横方向の幅a1が約20ピクセルで表されたスケールのスケール画像で検出される。同様に顔画像102も縦方向の長さb2または横方向の幅a2が約20ピクセルとなる場合のスケール画像で検出される。したがって中心座標(p1,q1),(p2,q2)もそれぞれのスケールにおけるスコア画像の中心座標として求められる。この中心座標もSDRAM45に同様に記憶される。
ステップS92において顔画像が検出されなかったと判定された場合には、ステップS94において、パターン識別部75はスコア画像を非顔データとして学習データに追加する。これにより、より認識率の高い学習データが生成されることになる。
次に図12のフローチャート参照して、図8のステップS42における重なり処理の詳細について説明する。
ステップS121において、重なり判定部76は、1つのスケールのスケール画像のリストデータを読み出す。すなわちSDRAM45に記憶されているリストデータがここで読み出される。ステップS122において、重なり判定部76はリストデータを比較する。ステップS123において重なり判定部76は、2つのスコア画像が重なるかを判定する。2つのスコア画像が重なる場合には、ステップS124において重なり判定部76は重なり合う領域を除去する処理を実行する。
例えば図13に示されるように、2つのスコア画像P1,P2がある場合において、それぞれの左上部の角の座標を(Xa,Ya),(Xb,Yb)とする。スコア画像P1の幅はLa、高さはHa、スコア画像P2の幅はLb、高さはHbである。2つのスコア画像の左上の点のx座標の差をdX(=Xb-Xa),y座標の差をdY(=Yb-Ya)とするとき、
(La−dX)×(Lb+dX)>0
かつ
(Ha−dX)×(Hb+dY)>0
の条件を満たすとき、スコア画像P1とスコア画像P2が重なり合うと判定することができる。重なり合う領域が存在する場合には、その重なる領域(図13においてハッチングで示される領域)は除去される。
ステップS123において2つのスコア画像が重ならないと判定された場合にはステップS124の処理はスキップされる。
ステップS125において重なり判定部76は、すべてのスケールのスケール画像のリストデータを読み出したかを判定する。まだ読み出していないスケール画像のリストデータが存在する場合にはステップS121に戻り、それ以降の処理が繰り返し実行される。このようにして、第1のスケール画像乃至第5のスケール画像の各スケール画像ごとに複数のリストデータがそれぞれ読み出され、それぞれのリストデータの重なり合いが判定される。
ステップS125においてスケール画像のリストデータをすべて読み出したと判定された場合、ステップS126において重なり判定部76は、各スケール画像の顔の位置情報を記憶する。すなわち位置情報がSDRAM45に記憶される。
以上のようにしてリムーバブルメモリ50には、図3に示されるように主画像ファイルとともに主画像の顔の位置情報(中心座標、縮小率、大きさなど)が記録される。すなわち、主画像やサムネイル画像などの全体画像中の顔の位置が算出可能な情報が記録される。
なお説明は省略したが、主画像ファイルとともにそれを縮小したサムネイル画像も同時に記録される。
次に以上のようにして、リムーバブルメモリ50に記憶された画像データを再生する処理について、図14のフローチャートを参照して説明する。ユーザが操作ブロック46を操作して所定の主画像(全体画像)の再生を指令すると、読み出し部71は、リムーバブルメモリコントローラ49を介してリムーバブルメモリ50からユーザにより指定された(最初はデフォルト(例えば、記録順序が先頭)の)主画像のデータを読み出す。すなわち、指定された主画像のサムネイルのデータがリムーバブルメモリ50から読み出され、SDRAM45に記憶される。
ステップS142において判定部72は、指定された主画像データに対応する顔の位置情報があるかを判定する。顔の位置情報がない場合にはステップS143において表示部75は画像を表示する。すなわち、ステップS141で読み出されSDRAM45に記憶されたサムネイル画像データが読み出され、画像処理ブロック42を介して画像表示装置44に出力され、LCD21に全体画像として表示される。あるいは、ステップS141で主画像データを読み出し、それから縮小した表示用の画像を生成し、ステップS143で全体画像として表示するようにしてもよい。
ステップS144において判定部72は、他の画像(全体画像)が選択されたかを判定し、他の画像(全体画像)が選択された場合にはステップS141に戻り、それ以降の処理が繰り返し実行される。ステップS144において、他の画像(全体画像)が選択されていないと判定された場合には、ステップS145において、判定部72は終了が指示されたかを判定する。終了がまだ指示されていない場合には、処理はステップS143に戻り、それ以降の処理が繰り返される。終了が指示された場合には、再生処理は終了される。
ステップS142において、顔の位置情報があると判定された場合には、ステップS146において読み出し部71は顔の位置情報を読み出す。これにより、リムーバブルメモリ50から顔の位置情報がリムーバブルメモリコントローラ49を介して読み出され、SDRAM45に記憶される(あるいは、顔の位置情報がある場合には、サムネイル画像データあるいは主画像データとともに読み出し、SDRAM45に記憶しておくようにしてもよい)。またこのとき、演算部77は、得られた顔の位置情報から縦方向の余裕のピクセル数が適切となるように演算し(例えば図11の顔画像101の場合、中心座標(p1,q1)と縦方向の長さb1からの余裕α1を演算し)、SDRAM45に記憶させる。ステップS147において表示部75は画像を表示する。すなわち、ステップS141で読み出されたサムネイル画像データが、画像処理ブロック42を介して主画像表示装置44のLCD21に供給され、全体画像として表示される。あるいはまた、読み出された主画像データを縮小して生成された表示用の画像が全体画像として表示される。
ステップS148において判定部72は、顔ボタンがオンされたかを判定する。顔ボタン26がオンされた場合には、ステップS149において判定部72は、いま指定されている全体画像中のすべての顔画像を選択したかを判定する。まだすべての顔画像を選択していない場合には、ステップS150において選択部76は1つの顔画像を選択する。例えば、全体画像中に4つの顔画像が存在する場合に、そのうちの最も左側の1つの顔画像が選択される。そして、ステップS151において表示部75は、顔画像表示処理を実行する。その詳細は、図16のフローチャートを参照して後述するが、演算された余裕を用いて、選択された顔画像が最適な大きさに拡大表示される。さらにこのとき必要に応じて顔画像はガンマ補正されたうえで拡大表示される。
ステップS153において判定部72は、他の画像が選択されたかを判定する。他の画像(全体画像)が選択されていないと判定された場合には、ステップS154において、判定部72は終了が指示されたかを判定する。まだ終了が指示されていない場合には、処理はステップS148に戻り、それ以降の処理が繰り返し実行される。すなわち再び顔ボタン26がオンされたと判定された場合には、ステップS149においてその全体画像中のすべての顔画像を選択したかが判定される。そして、その全体画像中のすべての顔画像がまだ選択されていない場合には、ステップS150において1つの顔画像が選択される。すなわちこの場合には、その全体画像中の上述した4つの顔画像のうち、まだ選択していない次に左側の2つ目の顔画像が選択される。そしてステップS151において、その2つ目の顔画像が拡大表示される。
以上のようにして、顔ボタン26がオンされる毎に、LCD21には顔画像が1枚ずつ順次拡大して表示されることになる。
そしてステップS149においてその全体画像中のすべての顔画像を選択したと判定された場合、ステップS152において表示部75は全体画像(サムネイル画像または、主画像から生成された表示用の縮小された画像)を表示する。換言すれば、顔ボタン26を順次繰り返しオンすることで4つの顔画像のすべてを表示させた場合、さらに顔ボタン26がオンされたときは、元の全体画像が表示されることになる。
図15は、以上のようにして顔ボタン26が操作される毎に変化する表示の状態を表している。図15の左上に示されるように、顔画像131乃至133が表示されている全体画像が存在する場合において、ユーザが顔ボタン26を1回オンすると、例えば図中最も左側に位置する顔画像131が、図15において右上に示されるように拡大して表示される。このとき拡大倍率も表示される。この場合においては2倍とされている。この状態からさらに顔ボタン26がオンされると、図15の左上の全体画像において、左から2番目に位置する顔画像132が、図15の右下に示されるように拡大表示される。この場合にも左下に拡大倍率が示される。この場合拡大倍率は3倍とされている。この状態からさらに顔ボタン26がオンされると、最も右側に位置する顔画像133が、図15の左下に示されるように拡大表示される。この場合の拡大倍率は4倍とされている。さらに顔ボタン26がオンされると、図15の左上に示される全体画像(全ての顔画像を含む画像)が表示された状態に戻ることになる。
ステップS152の処理の後、処理はステップS153に進み、他の画像(全体画像)が選択されたかが判定される。ステップS153において、他の画像(全体画像)が選択されたと判定された場合には、処理はステップS141に戻り、それ以降の処理が繰り返し実行される。
ステップS154において、終了が指示されたと判定された場合、再生処理は終了される。
次に、図16のフローチャートを参照して、図14のステップS151の顔画像表示処理の詳細について説明する。
ステップS171において演算部77は、輝度のヒストグラムを演算する。すなわち、いま処理対象とされている顔画像の輝度のヒストグラムがここで演算される。ステップS172において判定部72は、輝度のヒストグラムはU字型かを判定する。すなわちステップS171で演算された輝度のヒストグラムのパターンが略U字型かが判定される。輝度のヒストグラムのパターンが略U字型である場合には、ステップS173において補正部78は、その顔画像の画像データを逆S字ガンマ補正する。すなわち図17に示されるような逆S字型の特性曲線151に沿ってその顔画像の画像データが補正される。特性曲線151により、入力信号のレベルが小さいときと大きいとき出力階調が急激に大きく変化するように補正され、入力信号のレベルがその中間である場合には、出力階調の変化率が小さくなるように補正される。その結果、図18Aに示されるように、明るさ(横軸)が暗い場合と明るい場合の度数(縦軸)が大きく、中間の明るさの度数が少ないといったように、明るさの度数が極端に分かれて分布しているような場合において、その分布が図18Bに示されるように、相互の分布のピークの間隔が狭くなるように補正される。このように補正することで、例えば主に逆光状態の画像が鮮明に表示されることになる。
ステップS172において輝度のヒストグラムがU字型ではないと判定された場合、ステップS174において判定部72は、輝度のヒストグラムが逆U字型かを判定する。輝度のヒストグラムが略逆U字型である場合には、ステップS175において補正部78は、その顔画像の画像データをS字ガンマ補正する。
すなわち図19に示されるように、略S字型の特性曲線161に沿って画像データが補正される。この特性曲線161は、入力信号が小さい場合には徐々に出力階調が変化するが、入力信号のレベルが中間付近の場合急激に出力階調が大きい変化率で増大される。そして入力信号のレベルがさらに大きくなると、出力階調の変化率は小さくなる。このような補正を行うことで、例えば図20Aに示されるように、明るさの分布が中央の狭い範囲に集中しているような場合において、その明るさの分布を図20Bに示されるように、広い範囲に渡って分布させることができる。このようにすることで、主にコントラストが少ない画像を、コントラストを強調した画像にすることができる。
ステップS174において輝度のヒストグラムが逆U字型ではないと判定された場合、またはステップS173もしくはステップS175の処理の後、処理はステップS176に進み、そこで表示部75は画像を拡大表示する。すなわち輝度のヒストグラムがU字型でも逆U字型でもないパターンである場合には、ガンマ補正は行われず、そのまま顔画像が拡大表示される。ステップS173,S175の処理を経た場合には、ガンマ補正された顔画像が拡大表示される。これにより、全体画像と同じ状態で、その一部の画像である顔画像が表示されることで、顔画像が不明瞭になったりすることが抑制される。
また、ステップS176においては、表示部75は顔画像を拡大して表示するとともに、顔画像の位置をユーザに認識させるために、全体画像を縮小した画像(その位置関係を模式的に表した図を含む)を同時に表示させる。この状態が図21に示されている。同図に示されるように、画面171には顔画像181が拡大して表示されている。
そして画面171の右下には、全体画像を縮小した縮小画像172が表示されている。この縮小画像172は、全体画像をそのまま縮小した画像なので、全体画像中に存在するすべての顔画像181乃至183が表示されている。そして顔画像181の周囲には、枠191が表示されており、いま表示されている範囲が全体画像中のどこであるのかがユーザにより容易に識別できるようになされている。またステップS176においては顔画像の拡大倍率も同時に表示される。図21の例では拡大倍率が4倍とされている。
この拡大出来る倍率は離散的な値で値とされており、図11の顔領域101A,102Aが画面171の大きさになるように拡大されているので、拡大倍率はY0/(b+2α1)、またはY0/(b2+2α2)となる。このα1,α2の値を調整することで顔画像を最も拡大表示出来る倍率が選択される。
またピクセル数が少ない顔画像を拡大しすぎると顔が認識できなくなる。そこで元の画像のピクセル数に応じて最大拡大倍率に制限を設けるようにしても良い。
次に、図22のフローチャートを参照してOSD情報表示処理について説明する。
ステップS201において判定部72は、LCD21に画像が表示されているかを判定する。画像が表示されている場合にはステップS202において、判定部72は顔の位置情報があるかを判定する。顔の位置情報がある場合にはステップS203において、読出部71は顔の位置情報読み出す。これによりリムーバブルメモリ50に記録されている位置情報が、リムーバブルメモリコントローラ49を介して読み出され、SDRAM45に記憶される。記憶されるとその位置情報が読み出される。ステップS204において演算部77は、顔画像から離れた位置を演算する。すなわちOSD情報を表示する位置であって、そのOSD情報を表示した場合に顔画像が隠されてしまわない位置が計算される。このとき、必要に応じて、顔画像が隠されないOSD情報の大きさも計算される。ステップS205において表示部75は、ステップS204の処理で計算された位置にOSD情報を表示する。顔画像が隠されないように大きさも計算された場合、縮小された大きさのOSD情報が表示される。
ステップS201において画像が表示されていないと判定された場合、またはステップS202において顔の位置情報がないと判定された場合には、ステップS206において表示部75はあらかじめ設定されているデフォルトの位置にOSD情報を表示する。
図23はデフォルトの位置にOSD情報を表示した場合の表示例を表している。図23の表示例においては、顔画像201と顔画像202が存在するが、それに対してOSD情報211乃至216が表示されている。OSD情報211はシャッタ速度(1/100)やISO値(ISO800)などを表す。OSD情報212は輝度値のヒストグラムである。OSD情報213は電池の残量(165分)を表す。OSD情報214は現在の年月日と時刻(2005年2月15日午後3字56分)を表す。OSD情報215は画像サイズ(5M)を表す。OSD情報216はリムーバブルメモリ50に記録された枚数(126)と現在の表示枚数(21番目)を表す。
図23の表示例においては顔画像202がOSD情報212により隠されてしまっている。
これに対して図24は顔画像が隠されないようにした位置にOSD情報を表示した表示例を表している。この場合においてはOSD情報212が顔画像201の左下に表示されている。したがって図24と比較して明らかなように、顔画像202がOSD情報212により隠されてしまうことが防止されている。
図25はデフォルトの位置にOSD情報を表示した他の表示例を表している。この表示例においては、顔画像231乃至234が存在する場合において、OSD情報212A乃至212Dが顔画像233と顔画像234を隠した状態となっている。OSD情報212A乃至212Dはそれぞれ赤、緑、青、および輝度の分布を表すヒストグラムである。
これに対して図26は計算された位置にOSD情報を表示した状態を表している。この表示例においてはOSD情報212A乃至212Dが縮小されて顔画像231の左下に表示されている。したがって顔画像233,234が隠されることが防止されている。またOSD情報211がデフォルトの位置(図25に示されている位置)から顔画像231の右上方向に移動して表示されている。
このように顔画像の位置情報が存在する場合には、OSD情報が顔画像を隠さない位置と大きさに調整して表示させることが可能となる。
また複数枚の静止画を自動的にさまざまな効果でつなぎ、簡単で高機能なスライドショーが提案されている。この場合、ランダムにズームの位置や倍率が決定され、静止画が表示される。あるいはスクロールの方向や移動距離がランダムに決定される。その結果、人が写っている写真でも人と関係ないところがズームアップされたり、スクロールすることで人がいない場所のみが表示されてしまうようなことがある。しかし、顔の位置情報を利用することで顔の位置と大きさが分かるため、最適なズームが可能になる。また人の顔がある部分をスクロールすることで、画面から人の顔がはみ出さないようにスクロールすることも可能となる。
以上のように本発明の実施形態においては、顔ボタン26が操作されるごとに1枚の全体画像に存在する複数の顔画像のそれぞれを1枚ずつ順番に順次拡大して表示するようにしたので、人の顔画像を容易かつ確実に確認することが可能となる。
また撮影時の情報やヒストグラムなどのOSD表示が顔にかかる場合にこれを防止し、顔の位置や大きさデータに基づきOSD表示位置を変更して表示することができるので、顔をできるだけ覆わない位置にOSD情報を表示することが可能となる。
図27は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU(Central Processing Unit)321は、ROM(Read Only Memory)322、または記憶部328に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)323には、CPU321が実行するプログラムやデータなどが適宜記憶される。これらのCPU321、ROM322、およびRAM323は、バス324により相互に接続されている。
CPU321にはまた、バス324を介して入出力インターフェース325が接続されている。入出力インターフェース325には、キーボード、マウス、マイクロホンなどよりなる入力部326、ディスプレイ、スピーカなどよりなる出力部327が接続されている。CPU321は、入力部326から入力される指令に対応して各種の処理を実行する。そして、CPU321は、処理の結果を出力部327に出力する。
入出力インターフェース325に接続されている記憶部328は、例えばハードディスクからなり、CPU321が実行するプログラムや各種のデータを記憶する。通信部329は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部329を介してプログラムを取得し、記憶部328に記憶してもよい。
入出力インターフェース325に接続されているドライブ330は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア331が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部328に転送され、記憶される。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図27に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)を含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア331、または、プログラムが一時的もしくは永続的に格納されるROM322や、記憶部328を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部329を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 デジタルスチルカメラ, 11 本体, 12 鏡筒, 21 LCD, 22 スイッチ, 25 再生ボタン, 26 顔ボタン, 27表示ボタン, 28 ゴミ箱ボタン, 41 カメラブロック, 42 画像処理ブロック, 43 顔認識ブロック, 44 画像表示装置, 45 SDRAM, 46 操作ブロック, 47 制御ブロック, 48 フラッシュメモリ, 49 リムーバブルメモリコントローラ, 50 リムーバブルメモリ