(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、図面等を参照して、本発明の実施の形態について、さらに詳しく説明する。
図1は、本発明による撮影装置の実施形態を示すブロック図である。
この実施形態の撮影装置は、撮像光学系1と、絞り2、撮像センサ3、AFE4、CPU5、画像処理部9、LV(ライブビュー)釦11、レリーズ釦12、動画記録開始釦13、顔検出機能SW(スイッチ)15、表示部16、記録I/F17等を備えている。
【0010】
撮像光学系1は、ズームレンズ、フォーカシングレンズを含む複数のレンズ群で構成されているが、簡単のために、
図1では撮像光学系1を1枚のレンズとして図示する。
【0011】
絞り2は、撮像センサ3に入射する単位時間当たりの光量を調節する。この絞り2の開口量は、CPU5の指示に応じて絞り制御部6が調整する。
【0012】
撮像センサ3は、撮像光学系1及び絞り2を通過した光束による被写体像を光電変換してアナログの画像信号を生成するものであり、例えば、CCDやCMOS等で構成される。この撮像センサ3の出力はAFE4に接続されている。なお、撮像センサ3の電荷蓄積時間及び信号読み出しは、いずれもCPU5によって制御される。
【0013】
撮像センサ3は、レリーズ釦12の全押し操作に応答して記録用の静止画像を撮像する。また、撮像センサ3は、撮影待機時にも所定間隔毎に観測用の画像(スルー画像)を連続的に撮像する。撮像センサ3によって時系列に取得されたスルー画像のデータは、表示部16での動画像表示や、CPU5による各種の演算処理に使用される。
【0014】
AFE4は、撮像センサ3の出力に対してアナログ信号処理を施すアナログフロントエンド回路である。AFE4は、複数行の加算が可能である。このAFE4は、相関二重サンプリングや、画像信号の増幅や、画像信号のA/D変換を行う。このAFE4から出力される画像信号はCPU5に入力される。CPU5は、AFE4において画像信号のゲインを調整することで、ISO感度に相当する撮像感度を調整できる。
【0015】
CPU5は、この実施形態の撮影装置の動作を統括的に制御するプロセッサである。このCPU5は、メモリに格納されたプログラムの実行により、絞り制御部6、露出演算部7、センサ制御部8、顔検出部10等として機能する。
【0016】
絞り制御部6は、露出演算部7が算出した絞り値で、絞り2を制御する。
露出演算部7は、スルー画像のデータを用いて露出演算を実行するとともに、この露出演算によって求めた露出量に応じて撮影装置の露出制御を実行する。露出演算部7は、撮影光学系1の絞り値や、撮像センサ3の感度及びシャッター速度を算出する。
センサ制御部8は、露出演算部7が算出した感度及びシャッター速度で撮像センサ3を制御する。
【0017】
顔検出部10は、スルー画像のデータに顔検出処理を施して、撮影画面内の人物の顔領域を検出する。この顔検出処理は公知のアルゴリズムによって行われる。顔検出部10は、公知の特徴点抽出処理によって、眉,目,鼻,唇の各端点などの特徴点を画像から抽出するとともに、これらの特徴点に基づいて撮影画面内の顔領域の位置を特定する。顔検出部10は、予め用意された顔画像と判定対象の画像との相関係数を求め、この相関係数が一定の閾値を超えるときに判定対象の画像を顔領域と判定してもよい。
【0018】
画像処理部9は、デジタルの画像信号に対して各種の画像処理(色補間処理、階調変換処理、輪郭強調処理、ホワイトバランス調整、ガンマ処理など)を施す。また、画像処理部9は、スルー画像に解像度変換等を施して、モニタ表示用のライブビュー画像を生成する。なお、画像処理部9は、入力された画像のデータに基づいて、ホワイトバランス調整で適用するホワイトバランス調整値を求めることもできる。
【0019】
LV(ライブビュー)釦11は、押下されるとライブビューモードに入り、表示部16にスルー画が表示される。
レリーズ釦12は、全押し操作による撮影動作開始の指示入力をユーザーから受け付ける。
動画記録開始釦13は、押下されたときには、動画記録を開始し、表示部16に記録中の画像が表示され、記録媒体20には、画像データが記録される。
露出補正ダイアル14は、ユーザーが意図した露出補正を設定するダイアルである。
顔検出機能SW15は、顔検出部10に顔検出を開始させるためのスイッチである。
【0020】
表示部16は、CPU5の指示に応じて各種画像を表示する。例えば、撮影モードでの撮影待機時において、表示部16にはCPU5の制御によりライブビュー画像が動画表示される。表示部16は、例えば、LCD等で構成されている。
【0021】
記録I/F17には、不揮発性の記憶媒体20を挿入するためのスロットを装備している。そして、記録I/F17は、スロットに挿入された記憶媒体20に対してデータの書き込み/読み込みを実行する。この記憶媒体20は、半導体メモリを内蔵したメモリカードなどで構成され、例えば、SDカードやCFカードのことである。
【0022】
図2を用いて本実施形態に係る露出制御装置及び撮影装置の処理について説明する。
【0023】
CPU5は、初期設定において顔検出部10をリセットする。(ステップS101)。CPU5は、顔検出機能SW15がOnになったか否かを判断する(ステップS102)。
【0024】
CPU5は、顔検出機能SW15がOnであると判断した場合(ステップS102/YES)、後述する
図3、
図4に示す、実際に顔有り無しの切り替わりに応じた露出制御演算を行い(ステップS109)、処理を終了する。
【0025】
CPU5は、顔検出機能SW15がOnでないと判断した場合(、ステップS102/NO)、画面全体の評価値を取得する(ステップS103)。CPU5は、取得した評価値から、画面全体のBvZ値(マルチパターン測光)を算出する(ステップS104)。
【0026】
CPU5は、ステップS105の処理において、マルチパターン測光により求めたBvZの値をBv値に置き換え、Bv=BvZとする(ステップS105)。CPU5は、数値置き換え後、補正値を加味し(ステップS106)、最終スムージング処理を行い(ステップS107)、APEX演算を行う(ステップS108)。
【0027】
(スムージング処理)
最終スムージング処理では、S105で算出されたBv値に対し、LPFなどによってスムージングの処理を行う。これにより、輝度変化への追従が遅くなる。
【0028】
(APEX演算)
S108は、S107で算出されたスムージング処理後のBv値から、APEX演算式(Av+Tv=Bv+Sv)とプログラム線図(図示はなし)を用い、次回の画像データの露出が最適になるように撮像素子の露出値を算出する。
Av:絞り値 Aperture Value
Tv:シャッター速度 Time Value
Sv:撮影感度 Sensitivity Value
【0029】
図3、4、
図8を用いて本実施形態に係る露出制御装置及び撮影装置の顔検出非検出の演算処理について説明する。
【0030】
図8は、逆光時を示す図である。(a)は、逆光時、顔検出機能SWがOffとなっている場合であり、(b)は、逆光時、顔検出機能SWがOffとなっている場合であり、(c)は、顔検出機能ON時、顔が検出された場合、されなかった場合の切り替わりが繰り返されることを示す図である。
【0031】
CPU5は、動画記録開始釦13がOnかOffかを判断する(ステップS201)。動画記録開始釦13がOffの場合(ステップS201/No)、顔検出機能が顔を検出したか検出しなかったか、の判断を行う。(ステップS202)。顔検出機能が顔を検出した場合(ステップS202/YES)、顔検出枠の評価値取得を行う(ステップS203)。顔検枠の評価値取得後、顔の測光値であるBvFの算出を行う。(ステップS204)。
【0032】
顔検出機能が顔を検出しなかった場合(ステップS202/No)、画面全体の評価値を取得する(ステップS205)。評価値取得後、マルチパターン測光値であるBvZ値の算出を行う(ステップS206)。
【0033】
(動画像)
CPU5は、動画記録開始釦13がOnの場合(ステップS201/YES)、DetCount=DetCountTh2となるように初期設定を行う(ステップS207)。
【0034】
(初期設定)
DetCountとは、測光演算、又は露出演算のカウント値をいう。
つまり、測光演算、又は露出演算が行われるごとに、DetCountを1カウントずつ増やしていく。DetCountTh1(デットカウントスレッシュ1)は、収束方向に向かい始めのカウント値(第1のカウント値)である。
【0035】
DetCountTh2(デットカウントスレッシュ2)は、収束させたいカウント値である(第2のカウント値)。つまり、DetCount=DetCountTh2となった時に、測光値が収束する。
【0036】
〈顔検出処理〉
CPU5は、顔検出機能が顔を検出したか検出しなかったかの判断を行う(ステップS208)。顔検出機能が顔を検出した場合(ステップS208/YES)、前回、顔検出機能が、顔を検出したか否かの判断を行う(ステップS209)。
【0037】
(初回顔検出)
CPU5は、前回、顔を検出しなかった場合(今回初顔検出)(ステップS209/No)、DetCount値をクリアし、DetCount=0とする(ステップS210)。
【0038】
CPU5は、マルチパターン測光によって求めたBvZの値をBv値に置き換え、Bv=BvZとする(ステップS211)。
CPU5は、数値置き換え後、補正値を加味し(ステップS225)、最終スムージング処理を行い(ステップS226)、APEX演算を行う(ステップS227)。
【0039】
CPU5は、顔検出機能SW15がOnかOffかを判断し(ステップS228)、顔検出機能SW15がOffであると判断した場合(ステップS228/YES)、リターンする。顔検出機能SW15がOffでないと判断した場合(ステップS228/No)、ステップS208の処理に戻る。
【0040】
(前回顔検出あり)
CPU5は、前回、顔を検出していた場合(ステップS209/YES)、画面全体の評価値を取得する(ステップS212)。評価値の取得後、画面全体のBvZ値(マルチパターン測光)を算出する(ステップS213)。
【0041】
CPU5は、DetCountがDetCountTh2でクリップ(DetCount値が収束しているか)しているか否かの判断を行う(ステップS214)。DetCountTh2でクリップしていると判断した場合(ステップS214/YES)、顔検出枠の評価値取得を行う(ステップS216)。CPU5は、評価値取得後、顔検出枠のBvF値の算出を行う(ステップS217)。
【0042】
CPU5は、DetCountTh2でクリップしていないと判断した場合(ステップS214/No)、DetCount値をインクリメントし(ステップS215)、顔検出枠の評価値取得を行う(ステップS216)。
【0043】
CPU5は、DetCount≧DetCountTh1であるか否かの判断を行う(ステップS218)。DetCount≧DetCountTh1でないと判断した場合(ステップS218/No)、前回のBv値に置き換え、Bv=BvZとする(ステップS211)。置き換え後、補正値を加味し(ステップS225)、最終スムージング処理を行い(ステップS226)、APEX演算を行う(ステップS227)。
【0044】
CPU5は、DetCount≧DetCountTh1であると判断した場合(ステップS218/YES)、線形補間の処理に進む(ステップS219)。
【0045】
(線形補間)
本実施形態の線形補間の式は、以下に示す。
Bv=BvZ+((DetCount−DetCountTh1)÷(DetCountTh2−DetCountTh1))×(BvF−BvZ)
ステップS219では、上記演算を行う。
【0046】
CPU5は、DetCount≧DetCountTh2(収束状態)であるか否かの判断を行う(ステップS220)。DetCount≧DetCountTh2でないと判断した場合(ステップS220/No)、顔検出機能が顔を検出しているか、検出していないかの判断を行い、顔を検出していないと判断した場合(ステップS221/No)、前回のBv値に置き換え、Bv=BvZとする(ステップS222)。置き換え後、補正値を加味し(ステップS225)、最終スムージング処理を行い(ステップS226)、APEX演算を行う(ステップS227)。
【0047】
CPU5は、DetCount≧DetCountTh2であると判断した場合(ステップS220/YES)、DetCountの値をDetCountTh2にクリップする(ステップS224)。CPU5は、値をクリップ後、ステップS225の処理に進む。
【0048】
CPU5は、顔検出機能が顔を検出したか検出しなかったかを判断し、顔を検出したと判断した場合(ステップS221/YES)、前回のBv値に置き換え、Bv=BvZとする(ステップS222)置き換え後、ステップS225の処理に進む。
【0049】
〈顔検出処理〉
CPU5は、顔を検出しなかったと判断した場合(ステップS208/No)、前回、顔を検出していたか否かの判断を行う(ステップS229)。
【0050】
(初回顔非検出)
CPU5は、顔検出機能が、前回、顔を検出していなかった場合(今回初顔非検出)、(ステップS229/No)、DetCount値をクリアし、DetCount=0とする(ステップS230)。
【0051】
CPU5は、マルチパターン測光によって求めたBvZの値をBv値に置き換え、Bv=BvZとする(ステップS231)。CPU5は、数値置き換え後、補正値を加味し(ステップS245)、最終スムージング処理を行い(ステップS246)、APEX演算を行う(ステップS247)。
【0052】
CPU5は、顔検出機能SW15がOnかOffかを判断し(ステップS248)、顔検出機能SW15がOffであると判断した場合(ステップS248/YES)、リターンする。顔検出機能SW15がOffでないと判断した場合(ステップS248/No)、ステップS208の処理に戻る。
【0053】
(前回顔検出あり)
CPU5は、前回、顔を検出していた場合(ステップS229/YES)、画面全体の評価値を取得する(ステップS232)。評価値の取得後、画面全体のBvZ値(マルチパターン測光)を算出する(ステップS233)。
【0054】
CPU5は、DetCountがDetCountTh2でクリップ(DetCount値が収束しているか)しているか否かの判断を行う(ステップS234)。DetCountTh2でクリップしていると判断した場合(ステップS234/YES)、顔検出枠の評価値取得を行う(ステップS236)。CPU5は、評価値取得後、顔検出枠のBvF値の算出を行う(ステップS237)。
【0055】
CPU5は、DetCountTh2でクリップしていないと判断した場合(ステップS234/No)、DetCount値をインクリメントし(ステップS235)、顔検出枠の評価値取得を行う(ステップS236)。
【0056】
CPU5は、DetCount≧DetCountTh1であるか否かの判断を行う(ステップS238)。DetCount≧DetCountTh1でないと判断した場合(ステップS238/No)、前回のBv値に置き換え、Bv=BvZとする(ステップS231)。置き換え後、補正値を加味し(ステップS235)、最終スムージング処理を行い(ステップS236)、APEX演算を行う(ステップS237)。
【0057】
CPU5は、DetCount≧DetCountTh1であると判断した場合(ステップS238/YES)、線形補間の処理に進む(ステップS239)。
【0058】
(線形補間)
本実施形態の線形補間の式は、以下に示す。
Bv=BvF+((DetCount−DetCountTh1)÷(DetCountTh2−DetCountTh1))×(BvZ−BvF)
ステップS239では、上記演算を行う。
【0059】
CPU5は、DetCount≧DetCountTh2(収束状態)であるか否かの判断を行う(ステップS240)。DetCount≧DetCountTh2でないと判断した場合(ステップS240/No)、顔検出機能が、顔を検出したか検出しなかったかの判断を行い、顔を検出したと判断した場合(ステップS241/No)、前回のBv値に置き換え、Bv=BvZとする(ステップS242)。置き換え後、補正値を加味し(ステップS245)、最終スムージング処理を行い(ステップS246)、APEX演算を行う(ステップS247)。
【0060】
CPU5は、DetCount≧DetCountTh2であると判断した場合(ステップS240/YES)、DetCountの値をDetCountTh2にクリップする(ステップS244)。CPU5は、値をクリップ後、ステップS245の処理に進む。
【0061】
CPU5は、顔検出機能が顔を検出したか検出しなかったかを判断し、顔を検出したと判断した場合(ステップS241/YES)、前回のBv値に置き換え、Bv=BvFとする(ステップS242)。置き換え後、ステップS245の処理に進む。
【0062】
図5、6、7、8を用いて本実施形態に係る露出制御装置及び撮影装置の処理について説明する。
【0063】
図6は、DetCountTh1=0、DetCountTh2=8であって、やや遅く追従させたものである。縦軸がBv値で、横軸が測光演算回数をカウントしたものである。
図7は、縦軸がBv値で、横軸は露出演算回数をカウントしたものである。
縦軸がBv値で、横軸は測光演算回数をカウントしたものである。
【0064】
図6では、DetCountTh2=8としているので、
図5の曲線の方が、緩やかとなっている。この場合、DetCountTh2が低い数値、つまり、追従はやや遅い程度である。
【0065】
図7(5)は、LPF処理のみを施した線を示すものである。
【0066】
LPF処理のみを施した場合は、顔Bv値、マルチパターン測光値それぞれに収束しているが、明るさを変動させたくない場合であっても、また、顔検出、非検出の頻度、スピード等に限らず、顔Bv値、マルチパターン測光値のどちらかに切り替わってしまう。
【0067】
逆光や、顔が斜めを向いているときなどは、顔検出そのものが不安定で、顔を検出したりしなかったり、を繰り返すことがある。この場合に、急激な輝度変化が発生し、チラツキが発生しやすいという問題がある。
【0068】
図5及び6に示す(4)は、算出されたBv値に対し、何も処置を施さない場合を表す線である。この場合、顔を検出した検出しないが切り替わると、顔検出枠の測光値とマルチパターン測光による測光値に大きな輝度差があるため、露出(明るさ)にチラツキが発生し、見た目の品位が非常に悪くなってしまう。
【0069】
(3)は、簡単なLPF処置のみを表す線である。
この場合、そこそこ滑らかになり、見た目の品位は改善される。
しかし、例えば、測光回数が80から100や400から430など、切り替わりが早いと、それに追従してしまうため、見た目の品位はまだ不十分である。
タップ数を多く取るなどして追従を遅くさせるようなLPFを設計しても良いが、そうすると、マイコンへの演算の負担が大きくなってしまう。
【0070】
(2)の線形補間のみの場合、切り替わり時のBv値の変化がやや急峻なため、やはり、見た目の品位はあまり改善されない。
(1)は、本実施形態に係る撮影装置の処理において、線形補間と簡単なLPF処置の組み合わせを行った場合の滑らかな曲線である。
【0071】
図5は、DetCountTh1=0、DetCountTh2=40であり、遅く追従させたものであり、縦軸がBv値で、簡単のために、顔を検出した時の顔検出枠の測光値BvF=3、顔を検出しなかった場合、つまり、マルチパターン測光による測光値をBvZ=6とした。
また、横軸は測光演算回数をカウントしたものである。
ただし、DetCountTh2を大きく設定しすぎると、逆に、追従が遅くなりすぎるため、シーン毎によるチューニングが必要である。
【0072】
図5では、上述のように、DetCountTh2=40としたが、この値が大きい程、曲線は、緩やかになる。
図5は、DetCountTh2を高めに設定。追従は更に遅くなる。
このように、DetCountTh2を変えることで、追従の速度を変えられる、つまり、マイコンの負荷をかけLPFのタップ数を大きく取る必要なない、こちらの方が、全体的に滑らかであり、見た目の品位としては良い。
【0073】
本実施形態の効果は、以下のとおりである。
従来では、顔検出時に顔検出と判断されたか、非検出と判断されたか否かに限らず、LPF処理を施すので、顔検出、非検出の繰り返しが多い場合、やや多い場合でもチラツキが生じる。
本実施形態では、顔検出、非検出の繰り返しが多い場合、やや多い場合でもチラツキの効果が改善され、スルー画、動画の見た目の品位が向上する。また、演算負荷が軽いが、スムージングの効果が得られる。
【0074】
以上説明した実施形態に限定されることはない。あくまでも好ましい一の実施の形態であり本発明の効果を奏する範囲内では、種々の変形、変更が可能である。例えば、本実施形態では、CPU5、画像処理部9を切り離して説明するが、ASICにCPU5、画像処理部9を組み合わせた場合も本発明を実施可能である。また、動画記録中のレリーズスイッチによる静止画撮影等にも適用できる。例えば、
図3において、動画撮影が開始された後(S117参照)において、レリーズスイッチONの判定(S112参照)を行い、レリーズスイッチONの判定がされたら静止画像用露出制御(S113参照)を行ってもよい、とする。