被写体検出機能を備えた撮像装置、撮像装置の制御方法、及び、プログラム
【課題】顔を検出する機能を備えた撮像装置において、主被写体として選択した顔に測距枠が重なって表示された場合であっても、その顔を引き続き主被写体として選択できる構成とする。
【解決手段】測距枠を表示する表示部107と、表示部107を透過した光が入射する測光部108と、測光部108で得られた画像信号から被写体を検出するAECPU112と、AECPU112による検出結果に応じて、表示部107が表示可能な複数の測距枠からいずれかの測距枠を選択し、表示部107に選択した測距枠を表示させるCPU101とを有し、CPU101は、表示部107に表示される測距枠の大きさに対する検出された被写体の大きさの割合が所定の閾値以上である場合には、表示部107に表示させる測距枠の位置を検出された被写体に応じた位置に移動させ、閾値未満である場合には、測距枠の位置を検出された被写体に応じた位置に移動させない。
【解決手段】測距枠を表示する表示部107と、表示部107を透過した光が入射する測光部108と、測光部108で得られた画像信号から被写体を検出するAECPU112と、AECPU112による検出結果に応じて、表示部107が表示可能な複数の測距枠からいずれかの測距枠を選択し、表示部107に選択した測距枠を表示させるCPU101とを有し、CPU101は、表示部107に表示される測距枠の大きさに対する検出された被写体の大きさの割合が所定の閾値以上である場合には、表示部107に表示させる測距枠の位置を検出された被写体に応じた位置に移動させ、閾値未満である場合には、測距枠の位置を検出された被写体に応じた位置に移動させない。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体検出機能を備えた撮像装置、撮像装置の制御方法、及び、プログラムに関する。
【背景技術】
【0002】
撮影して得られた映像から人物の顔を検出する構成や、パターンマッチングを用いてこの映像に含まれる所定の被写体を追尾する構成を備えたビデオカメラシステムが知られている(特許文献1を参照)。
また、撮影用の撮像素子とは別に第2の撮像素子を備え、この第2の撮像素子に、被写体像が結像されるピント板と選択された測距枠を表示するための表示部を透過した光が入射する一眼レフカメラが知られている(特許文献2を参照)。この特許文献2に開示された一眼レフカメラは、第2の撮像素子で映像信号を生成し、取得した映像信号を処理することによって所定の被写体を追尾することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−96963号公報
【特許文献2】特開2008−5110号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した技術を組み合わせることで、ピント板と測距枠を表示する表示部を透過した光が入射する第2の撮像素子を設け、この第2の撮像素子で得られた映像信号から、人物の顔を検出する構成を導くことができる。
しかしながら、第2の撮像素子に入射する光は測距枠を表示するための表示部を透過しているため、第2の撮像素子から得られる映像には、選択された測距枠の表示も含まれている。そのため、この測距枠が人物の顔に重なっていると、顔の一部が隠れてしまうため、その顔を精度良く検出することができなくなってしまうことがある。
図11は、測距枠を表示することによって顔の一部が隠れた場合に生じる課題を説明するための図である。カメラは、測距枠が表示されていない段階では、第2の撮像素子から得られた映像信号を用いて二人の人物の顔を検出することができる。
カメラは複数の顔が検出された場合には、各々の顔の大きさ、顔の位置、および、顔の信頼度に基づいて、各々の顔の評価値を求め、最も評価値の高い顔を主被写体として選択する。顔の信頼度とは、その領域が顔である確率を示す値であり、カメラは、この確率が予め定められた閾値を超えている領域を、顔領域と判定する。
カメラは、右側の顔のほうが左側の顔よりも、サイズが大きく、画面の中央に近く、かつ、顔の信頼度が高いため、右側の顔を主被写体と判定する。そして、カメラは、図11(a)に示すように、右側の顔と重なる位置ある測距枠を選択し、この測距枠に色を付ける。
その結果、カメラは、色の付いた測距枠のせいで右側の顔を検出できなくなるか、あるいは、右側の顔の信頼度が著しく低下してしまうため、図11(b)に示すように、左側の顔を主被写体として判定してしまう。
つまり、複数の顔が存在する場合に、主被写体として選択した顔に対して測距枠の表示を行ってしまうと、同じ顔を再び主被写体として選択することが困難になってしまう。
なお、ここでは、被写体として顔を検出する機能を例にあげて説明を行ったが、予め定められた特定の被写体(例えば、特定の個人や、犬や車といった特定の動物や物体)を検出する機能を備えていれば、同様の課題が生じる。
【課題を解決するための手段】
【0005】
前記課題を解決するため、本願発明は、測距枠の位置を示すために測距枠を表示する表示部と、前記表示部を透過した光が入射する測光部と、前記測光部で得られた画像信号から予め定められた被写体を検出する検出部と、前記検出部による検出の結果に応じて、前記表示部が表示することが可能な複数の測距枠のうちの少なくともいずれかの測距枠を選択し、前記表示部に選択した測距枠を表示させる処理部とを有し、前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が所定の閾値以上である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させないことを特徴とする撮像装置を提供する。
【発明の効果】
【0006】
本発明によれば、複数の顔が存在する場合において、主被写体として選択した顔に測距枠の表示が重なったとしても、その顔を引き続き主被写体として選択しやすくする構成を提供することが可能となる。
【図面の簡単な説明】
【0007】
【図1】カメラの要部の構成を模式的に示す図である。
【図2】表示部の測距枠の配置の一例を示す図である。
【図3】測距枠が表示されている場合の、測距枠の大きさに対する顔の大きさの割合と顔検出率の関係を示す図である。
【図4】測距枠が表示されていない場合の、測距枠の大きさに対する顔の大きさと顔検出率の関係を示すグラフである。
【図5】顔検出および追尾のシーケンスを説明するための図である。
【図6】顔検出および追尾の結果による測距枠の移動処理を示すフローチャートである。
【図7】顔以外の被写体に重なる位置にある測距枠が選択されている状態から、顔に重なる位置になる測距枠が選択される状態に遷移する様子を示す図である。
【図8】顔に重なる位置にある測距枠が選択された様子を示す図である。
【図9】顔の大きさに対する測距枠の移動可能範囲の例を示す図である。
【図10】顔の大きさに対する測距枠の移動可能範囲を定めることの効果を説明するための図である。
【図11】従来のカメラの、測距枠を表示することによって顔の一部が隠れた場合に生じる課題を説明するための図である。
【発明を実施するための形態】
【0008】
以下に、本発明の好ましい実施の形態について、添付の図面を参照して詳細に説明する。
図1は、本発明の実施形態にかかる撮像装置である一眼レフカメラの要部の構成を模式的に示す図であり、カメラ本体100と撮影レンズユニット200の断面を示す。
CPU101は、本発明の実施形態にかかるカメラ本体100の各部を制御するものであり、RAMやROMなどで構成されたメモリ102がCPU101に接続されている。撮像素子103は、赤外カットフィルタやローパスフィルタなどを備えたCCDやCMOSセンサなどで構成される。そして、撮像素子103は、撮影時に被写体の像が撮影レンズユニット200を通じて結像される。シャッター104は、非撮影時にはシャッター羽根を閉じて撮像素子103を遮光し、撮影時においてはシャッター羽根を開いて撮像素子103に光を導く。ハーフミラー105は、非撮影時においては、撮影レンズユニット200より入射する光の一部を反射してピント板106に結像させる。
表示部107は、透過型の表示素子であり、CPU101からの指示によって、被写界に測距枠の位置を示す測距枠を色を付けて表示する。そして、表示部107は、測距枠を表示することにより、使用者が光学ファインダーを覗いた場合に、被写界のどの位置の測距情報を用いているかを使用者に示す。
図2は、表示部に表示される複数の測距枠の配置の一例を示す。破線で描かれ、1〜15の符号が付された15個の枠が、複数の測距枠のそれぞれの位置を示す。なお、表示部107には、たとえば透過型のポリマーネットワーク液晶表示素子が適用される。これらの複数の測距枠は、主被写体に係る測距枠として選択されていないときは透過性が高く、測光部108で得られる画像信号にはほとんど影響がない。反対に、主被写体に係る測距枠として選択された測距枠は、色が付くため、測光部108で得られる画像信号にこの選択された測距枠の像が映りこむ。
測光部108は、撮影レンズユニット200を通じて入射した光束を測光する測光センサで構成される。測光部108には、CCDやCMOSセンサなどの撮像素子が使用される。このため、測光部108は、測光のほか、顔検出や追尾を行うことができる。なお、図1に示すように、表示部107は、撮影レンズユニット200を通じて入射した光を測光部108に導く光路の途中に設けられる。
ペンタプリズム109は、ピント板106の被写体像を、測光部108および不図示の光学ファインダーに導く。測光部108には、ピント板に結像した被写体像が、ペンタプリズム109を介して入射する。撮影レンズユニット200から入射してハーフミラー105を透過した光の一部は、AFミラー111によって焦点検出部110に導かれる。そして、焦点検出部110は、AFミラー111によって導かれた光を用いて測距を行う。被写体の検出部としてのAECPU112は、測光部108で得られた信号を用いて画像処理や演算を実行するCPUである。本発明の実施形態にかかるカメラにおいては、AECPU112は、顔検出や追尾の演算や、測光演算を行う。メモリ113はRAMやROMで構成されており、AECPU112に接続されている。なお、本発明の実施形態にかかるカメラは、CPU101と別個のAECPU112を備えるが、CPU101が両方の機能を担ってもよい。撮影レンズユニット内に配設されたCPUであるLPU201は、被写体の距離情報などをCPU101に送信する。
【0009】
次いで、測距枠に対する顔の大きさと顔検出率との関係について、図3と図4を参照して説明する。顔検出率とは、顔の検出に成功する確率である。
図3は、顔と重なる位置にある測距枠を表示した場合の、測距枠の大きさに対するその顔の大きさと、その顔の顔検出率の関係を示すグラフである。図4は、測距枠を表示しない場合の、測距枠の大きさに対する顔の大きさと顔検出率の関係を示すグラフである。
図3に示すように、本発明の実施形態にかかるカメラにおいては、測距枠の大きさは測距枠の横方向の寸法で定義される。また、顔の大きさは、顔の横幅を一辺とし、あごの下端の位置を下辺とした正方形で定義される。もちろん、これは測距枠の大きさと顔の大きさを示す1つの例を示すのであって、測距枠の大きさと顔の大きさの定義の仕方はこれに限られるものではない。
顔検出は、例えば、顔全体の輪郭や、顔の構成要素(目、鼻、耳等)に基づいてテンプレートマッチングによって行われる。あるいは、ニューラルネットワークを使って教材として用意された画像を用いて学習を行い、顔らしい領域を顔として検出することによって行われるようにしてもよい。
図3のグラフに示すように、測距枠の大きさに対する顔の大きさが小さいと、測距枠が、顔検出のために必要な目や口などに重なってこれらを隠してしまう。このため、顔検出率が低くなる。図3と図4を比較することで明らかなように、測距枠が表示されていない場合は、測距枠が表示された場合に比較して、顔検出率は高くなる。このように、測距枠が表示されるか表示されないかよって、顔検出率は大きく変化する。
【0010】
次に、顔検出および追尾のシーケンスについて、図5を参照して説明する。なお、以下の説明において、「AE処理ユニット」、「AF処理ユニット」とは、センサと、それぞれ処理系のCPUを含めたものを意味する。たとえば、AE処理ユニットは、測光部108、AECPU112、および、AECPU112に接続するメモリ113を意味する。AF処理ユニットは、焦点検出部110、CPU101、および、CPU101に接続するメモリ102を意味する。
AE処理ユニットとAF処理ユニットは、所定の周期で測光演算と測距演算を繰り返す。この所定の周期をそれぞれ、「測光周期1」、「測光周期2」、「測光周期3」・・・と呼ぶことにする。
まず、CPU101からの測光開始命令によって、「測光周期1」が開始される。測光周期1が開始されると、AE処理ユニットはa1の期間で電荷の蓄積を行い、蓄積された電荷の読み出しを行う。これに並行して、AF処理ユニットはb1の期間で電荷の蓄積を行い、蓄積された電荷の読み出しを行う。その後、AE処理ユニットは、読み出した画像信号から追尾演算を行い、AF処理ユニットは、読み出した画像信号から測距演算を行う。
AF処理ユニットは、測距演算の結果に基づいて撮影レンズユニット200に含まれるレンズ群を駆動し、いずれかの測距枠の情報に基づいてAF(オートフォーカス)動作を行う。
AE処理ユニットが行う追尾演算は、映像信号に含まれる2枚以上の画像信号から、相関の高い領域を抽出することで、追尾対象となる領域が移動した位置を求める。AE処理ユニットは、測光命令後の最初の追尾演算では、追尾対象となる領域がまだ定まっていないため、実際には追尾演算を実行しない。
そして、AE処理ユニットは、読み出した画像信号を用いて測光演算を行う。続いて、AE処理ユニットは、読み出した画像信号から顔検出演算を行い、顔が検出された場合には、顔の座標、大きさ、および、信頼度を求め、これらを記憶する。
【0011】
続いて、次の「測光周期2」においても、AE処理ユニットはa1の期間で電荷の蓄積を行ってから蓄積された電荷の読み出しを行い、AF処理ユニットはb1の期間で電荷の蓄積を行ってから蓄積された電荷の読み出しを行う。そして、AE処理ユニットは追尾演算を行い、AF処理ユニットは測距演算を行う。
前回の測光周期1において顔が検出された場合には、AE処理ユニットは、直前の測光周期(測光周期1)の画像信号から得られた顔の位置を中心として、顔の大きさに応じた追尾領域を設定する。測光周期1において複数の顔が検出されていた場合には、それぞれの顔に対して追尾領域を設定する。
そして、AE処理ユニットは、直前の測光周期で得られた画像信号から検出されたそれぞれの顔が、測光周期2で得られた画像信号のどこに移動したかを求める。例えば、AE処理ユニットは、測光周期2で設定された追尾領域のうち、直前の測光周期で検出された顔の領域と最も相関の高い領域を抽出し、この抽出した領域に顔が移動したと判定する。具体的には、AE処理ユニットは、測光周期2で得られた画像信号の追尾領域の一部に、直前の測光周期で顔の領域であると判断された画像信号を重ね、その輝度情報や色情報を示す信号レベルの差分を求める。これを、追尾領域の画像信号と、顔の領域であると判断された画像信号を重ねる位置をずらしながら繰り返し行う。そして、AE処理ユニットは、追尾領域のうち、求めた信号レベルの差分が最も小さくなった領域が、最も相関の高い領域であると判断する。もし、測距枠が表示されていたのであれば、測距枠の表示が反映された画像信号は相関を求める際の障害になるため、測距枠と同色の信号を相関の演算から除外するようにしてもよい。
一方、直前の測光周期において顔が検出されなかった場合には、AE処理ユニットは、直前の測光周期で選択された測距枠や、直前の測光周期で追尾に成功した被写体の位置を中心として追尾領域を設定する。直前の測光周期で選択された測距枠とは、ユーザーのマニュアル操作によって指定された測距枠を示す。
測距枠が指定された場合には、直前の測光周期で得られた画像信号のうち、選択された測距枠で囲まれた領域の画像信号を基準として、測光周期2の画像信号のうち最も相関の高い領域を抽出する追尾演算を行う。直前の測光周期で被写体の追尾に成功している場合には、追尾によって抽出された被写体の領域の画像信号を基準として、測光周期2の画像信号のうち最も相関の高い領域を抽出する追尾演算を行う。
その後、AE処理ユニットからの追尾演算の結果を受けて、AF処理ユニットは測距枠を選択する演算を行う。ここで、測光周期1で顔が検出されていない場合には、AF処理ユニットは、測光周期2におけるAE処理ユニットによる追尾演算(すなわち、輝度情報や色情報を用いる追尾演算)の結果のみに従って測距枠を移動させる。測光周期1で顔が検出されている場合には、AF処理ユニットは、所定の条件を満たすことを条件として、測距枠を測光周期1で検出された顔の位置に移動させる。
そして、AF処理ユニットは、新たに選択した測距枠から得られた測距演算の結果に基づいて撮影レンズユニット200に含まれるレンズ群を駆動し、AF動作を行う。
さらに、AE処理ユニットは、測光周期2で得られた画像を用いて、測光演算と顔検出演算を行う。測光周期3以降も、AE処理ユニットとAF処理ユニットは、このような動作を繰り返す。
【0012】
次いで、本発明の実施形態にかかるカメラの制御方法およびプログラムについて、図6を参照して説明する。本発明の実施形態にかかるカメラの制御方法およびプログラムは、本発明の実施形態にかかるカメラに、顔検出および追尾の結果による測距枠の移動を行わせるものである。
図6は、顔検出および追尾の測距枠移動アルゴリズムの処理を示したフローチャートである。この処理は、プログラムとしてメモリ113に保存されており、CPU101およびAECPU112がメモリ113から読み出して実行する。すなわち、CPU101、AECPU112およびメモリ113がカメラのコンピュータとなる。
【0013】
処理部であるCPU101は、顔検出および追尾の処理を開始すると、まずステップS101において、表示部107が測距枠を表示しているか否かを判断する。そして、表示部107が測距枠を表示している場合には、ステップS102に進む。
ステップS102においては、CPU101は、「測距枠の大きさに対する顔の大きさの割合」の閾値を設定する。この閾値は、現在選択されている測距枠の位置から、新たに検出された顔の位置に測距枠を移動させるか否かの判断に用いられる。この閾値は、顔の検出率が所望の値(または所望の値以上)になる「測距枠の大きさに対する顔の大きさの割合」が適用される。たとえば、図3に示すように、顔の検出率が80%以上である場合に、その顔へ測距枠を移動させるためには、この閾値に「3」が設定される。なお、「顔の検出率」と「測距枠の大きさに対する顔の大きさの割合」との関係は、測距枠の形状や、測距枠の線の太さなどに依存する。このため、表示部の種類ごとにこの関係を測定し、測定結果に基づいてこの閾値を設定すればよい。あるいは、現在顔に重なる位置にある測距枠が選択されているならば、その顔の「測距枠の大きさに対する顔の大きさの割合」と同じ値か、あるいは、それよりも大きな値を閾値として設定すればよい。
なお、測距枠の大きさが一定であるため、測距枠の大きさに対する顔の大きさの割合の閾値を設定することと、顔の大きさの閾値を設定することは同じことである。以下、説明を簡潔にするため、測距枠の大きさに対する顔の大きさの割合が閾値以上となることを、単に、顔の大きさが閾値以上となると表現することもある。
ステップS101において、CPU101は、表示部107が測距枠を表示していないと判断した場合には、測距枠が顔検出の障害にならないので、顔への測距枠移動の閾値を設けなくても良い。ただし、図4に示すように、顔が小さくなると顔検出率が徐々に低下するので、CPU101は、表示部107が測距枠を表示していないと判断された場合であっても、あらかじめ所定の大きさの閾値を設定する。ただし、この所定の大きさの閾値は、ステップS102で設定される閾値よりも小さい値とする。
このように、CPU101は、表示部107が測距枠を表示しているか表示していないかによって、閾値を変化させる。
次いで、ステップS103において、AECPU112は、AE処理ユニットにa1の期間で電荷の蓄積を行わせ、画像信号を生成させる。
ステップS104において、AECPU112は、ステップS103において得られた画像信号を用いて、追尾演算、測光演算、および、顔検出演算を行う。AECPU112は、追尾演算の結果と、顔検出演算の結果をCPU101に送信する。この顔検出演算の結果には、検出されたそれぞれの顔の大きさ、座標、および、信頼度の情報が含まれている。
ステップS105において、CPU101は、ステップS104における顔検出演算において顔が検出されたか否かを判断する。
そして、顔が検出されなかった場合には、CPU101はステップS110に進み、ステップS104における追尾演算の結果に応じた位置に測距枠を移動させる。
一方、CPU101は、顔が検出された場合にはステップS106に進む。ステップS106においては、CPU101は、検出された顔の中から、主被写体となる顔(以下、主顔と称する)を選択する。主被写体が、追尾演算における追尾対象となる。ステップS105において一つのみの顔が検出された場合には、検出された顔が主顔に選択される。ステップS105において複数の顔が検出された場合には、それらの中の一つが主顔に選択される。主顔の選択方法としては、たとえば、検出された顔の座標、大きさ、および、信頼度に応じて選択されるものとする。顔の位置が画像の中央部に近いほど、顔のサイズが大きいほど、顔の信頼度が高いほど、主顔として選択されやすくなる。なお、本実施形態においては、少なくとも顔の座標と大きさに基づいて主顔を選択する構成であればよい。
次いで、ステップS107において、CPU101は、主顔の大きさが設定された閾値以上であるかを判断する。この閾値は、ステップS102にて説明した閾値である。
そして、主顔の大きさが閾値未満であった場合には、AECPU112はステップS110に進む。ステップS110では、AECPU112は、ステップS104における追尾演算の結果に応じた位置に測距枠を移動させる。
一方、主顔の大きさが閾値以上である場合には、AECPU112はステップS108に進む。S108においては、AECPU112は、現在選択されている測距枠と主顔が検出された位置との距離を演算する。
そして、AECPU112は、演算された距離が所定の範囲内である場合には(=所定の距離よりも短い場合には)、ステップS109に進み、所定の範囲内にない場合にはステップS110に進む。
現在選択されている測距枠と主顔の位置とが大きく離れている場合には、使用者が主被写体として考えている人物の顔が測距枠の影響によって検出されておらず、別の人物の顔が主顔として選択されている可能性が高い。そこで、現在選択されている測距枠と主顔との距離が所定の範囲内にない場合には、AECPU112は主顔を主被写体(=追尾対象)とみなさず、測距枠を移動させない。
ステップS109においては、AECPU112は、選択された主顔の位置に測距枠を移動させる。そして、AE処理ユニットは、移動させた位置において、AF動作を行う。なお、この「所定の範囲」の具体的な値は、直前の測光周期で検出された顔の大きさに応じて、適宜設定される。
図9(a)は、顔の大きさに対する測距枠の移動可能範囲の例を示す表である。図9(b)(c)は、例として測距枠8が選択されているとき(図9(b))と、測距枠15が選択されているとき(図9(c))の、測距枠の移動可能範囲を示す図である。このように顔の大きさに対する測距枠の移動可能範囲を定めることによって、使用者の意図する顔に測距枠が移動する確率を上げることができる。
【0014】
なお、現在選択されている測距枠の位置で何回か連続して顔が検出されなかった場合には、現在選択されている測距枠以外の顔の位置に測距枠を移動させる、という処理が付加される構成であってもよい。このような処理が付加されないと、たとえば、測距枠の大きさに対する顔の大きさの割合が3の場合(=顔検出率が80%の場合)には、20%の確率で、測距枠が使用者の意図しない別の顔に移動する可能性がある。そこで、このような処理が付加されることによって、この確率を大幅に減らすことができる。
一例として、「現在選択されている測距枠の位置で三回連続して顔が検出されなかった場合に、現在選択されている測距枠以外の顔の位置に測距枠を移動させる」という処理が付加される構成を示す。この処理が付加されると、顔検出率が80%の場合には、意図しない顔に測距枠が移動する確率P(=3回連続して顔が検出されない確率)は、下記の式1から1%程度になる。
P=1−(1/5)3=124/125=0.992(%) (式1)
【0015】
次いで、本発明の実施形態にかかるカメラの制御方法が実行された場合における測距枠の移動について説明する。
図7(a)乃至図7(d)は、顔以外の被写体に重なる位置にある測距枠が選択されている状態から、顔に重なる位置にある測距枠が選択される状態に遷移する様子を示す図である。
図7(a)に示すように、使用者は、最初に測距枠を主被写体の胴体に合わせたとする。この場合には、図7(b)に示すように、AECPU112は、測距枠に対する主被写体の顔の大きさの割合が閾値以上になるまでは、現在選択されている測距枠(測距枠8)の位置における領域の画像信号を、追尾演算の対象として、その位置(胴体)でAFを行う。そして、図7(c)に示すように、測距枠に対する主被写体の顔の大きさの割合が閾値以上となった場合には、AECPU112は、主被写体の顔に重なる位置の測距枠を新たに選択する。そして、カメラは、顔でAF動作を行う。このため、主被写体の顔(=主顔)に焦点が合う。そして、図7(d)に示すように、AECPU112は主被写体の顔の追尾を行い、主被写体の顔に焦点があった状態を継続する。
図8(a)および図8(b)は、顔に重なる位置にある測距枠が選択された様子を示す図である。
AECPU112は、測距枠が選択されていない状態で2つの顔を検出し、右側の顔のほうが左側の顔よりも、サイズが大きく、画面の中央に近く、かつ、顔の信頼度が高いため、右側の顔を主被写体と判定する。そして、AECPU112は、右側の顔と重なる位置ある測距枠を選択し、色を付けて選択した測距枠を表示する。
直後の測光周期において、図8(a)に示す画像信号がAE処理ユニットにて得られる。AECPU112は、選択された測距枠の位置にある右側の人物の顔は、測距枠の表示の影響で検出できないが、左側の人物の顔は検出できる。
この時点で、左側の人物の顔しか検出できていないのだから、従来の技術では、小さいけれども検出に成功した左側の人物の顔に重なる位置の測距枠が、新たに選択されてしまっていた。しかしながら、本実施形態のカメラは、顔の大きさに閾値を設定することにより、主被写体の顔が検出されず、かつ、他の人物の顔が検出されたとしても、その他の人物の顔の大きさが十分で無いのであれば、測距枠を新たに選択することはない。つまり、図8(b)に示すように、そのまま主被写体の顔に対してAF動作を行うことができる。
ここで、図9で示した顔の大きさに対する測距枠の移動可能範囲を決めることのメリットについて、図10を参照して説明する。図10(a)に示すように、使用者が、最初に左側の人物の体の位置にある測距枠を選択した場合を仮定する。また、測距枠の移動を許容する顔の大きさの閾値を「2」に設定したと仮定する。このとき、左側の人物の顔は小さいので顔検出できていない。一方、使用者が選択していない右側の人物の顔は顔検出できる大きさであり、測距枠の大きさに対する顔の大きさの割合が2以上かつ2.5以下である。このとき、測距枠の移動可能範囲を設定せずに、測距枠の移動を許容する顔の大きさの閾値を「2」と決めるだけでは、この主被写体でない右側の人物の顔に測距枠が移動してしまう可能性がある。
しかしながら、図9で示したように、顔の大きさに対する測距枠の移動可能範囲を制限することによって、使用者の意図と異なる顔に測距枠が移動するのを抑制することができる。そして、カメラは左側の人物の体の位置を追尾し、体と重なる位置の測距枠から得られる情報を用いてAF動作を行う。
図10(b)に示すように、左側の人物がカメラに近づき、左側の人物の顔が検出できるようになる。そして、測距枠に対する主被写体の顔の大きさの割合が「2」を超えると、カメラは、体と重なる位置にある測距枠8に代わって、その顔の大きさに対応する移動可能範囲内に含まれ、かつ、その顔と重なる測距枠3を新たに選択する。そして、AECPU112はこの左側の人物の追尾を行い、この顔に重なる位置の測距枠から得られる情報を用いてAF動作を行う。このとき、左側の人物の顔が測距枠に隠れることで、右側の人物の顔に測距枠が移動してしまうことを防ぐため、一度、顔検出ができて顔の追尾を始めたら、暫くの間は、別の位置で顔が見つかっても測距枠を移動させないという処理を入れても構わない。
【0016】
以上説明したとおり、従来の構成では、被写界内に複数の顔が存在する場合において、現在追尾している顔が表示される測距枠により検出できなくなると、測距枠が別の顔に移動する。しかしながら、本発明の実施形態によれば、AECPU112は、現在選択されている測距枠で追尾を継続し、閾値以上の大きさの顔が存在する場合に限って、この顔に測距枠を移動させる。このため、本発明の実施形態によれば、主被写体の顔(=主顔)が検出できなくなった場合や、顔の検出率が低下した場合であっても、測距枠が使用者の意図する位置から他の位置に移動することを防止できる。
【0017】
以上、本発明の実施形態について詳細に説明したが、前記実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
例えば、CPU101は図6のステップS101において、単に測距枠を表示しているか否かの判定を行っているが、顔に重なる位置の測距枠が表示されているか否かの判定を行うようにしてもよい。あるいは、CPU101は、ステップS102において、顔が検出される前に測距枠の表示が行われたときの閾値を、顔が検出された後に測距枠の表示が行われたときの閾値よりも、小さく設定するようにしてもよい。いずれの顔も検出されていない状態であれば、測距枠の表示によって顔検出が妨げられている可能性が低いためである。
さらに、図6のフローチャートでは、CPU101は、主顔に対してのみステップS107乃至S108の判定を行っているが、検出できた全ての顔に対してこれらステップS107乃至S108の判定を行うようにしてもよい。
また、上述した実施形態では、顔を検出する機能を例にあげて説明を行ったが、予め定められた特定の被写体(例えば、特定の個人や、犬や車といった特定の動物や物体)を検出する機能を備えていれば、同様の構成を適用することが可能である。また、上述した実施形態の機能を実現する構成は、静止画を撮像するカメラに限られず、動画を撮影するカメラにも適用できる。
【0018】
また、前記実施形態の機能を実現するプログラムを、記録媒体から直接、或いは有線/無線通信を用いてプログラムを実行可能なコンピュータを有するシステムまたは装置に供給して実行する構成も、本発明に含まれる。従って、本発明の機能処理をコンピュータで実現するために、当該コンピュータに供給されてインストールされるプログラムコード自体も、本発明を実現するものである。つまり、本発明の機能処理を実現するためのプログラム自体も本発明に含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、MO、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等が適用できる。また、光/光磁気記憶媒体、不揮発性の半導体メモリも適用できる。
【符号の説明】
【0019】
100 カメラ本体
101 カメラマイコン(CPU)
103 撮像素子
105 ハーフミラー
107 表示部
108 測光部
110 焦点検出部
112 画像処理・演算用のCPU(AECPU)
200 撮影レンズユニット
201 レンズ内マイコン(LPU)
【技術分野】
【0001】
本発明は、被写体検出機能を備えた撮像装置、撮像装置の制御方法、及び、プログラムに関する。
【背景技術】
【0002】
撮影して得られた映像から人物の顔を検出する構成や、パターンマッチングを用いてこの映像に含まれる所定の被写体を追尾する構成を備えたビデオカメラシステムが知られている(特許文献1を参照)。
また、撮影用の撮像素子とは別に第2の撮像素子を備え、この第2の撮像素子に、被写体像が結像されるピント板と選択された測距枠を表示するための表示部を透過した光が入射する一眼レフカメラが知られている(特許文献2を参照)。この特許文献2に開示された一眼レフカメラは、第2の撮像素子で映像信号を生成し、取得した映像信号を処理することによって所定の被写体を追尾することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−96963号公報
【特許文献2】特開2008−5110号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した技術を組み合わせることで、ピント板と測距枠を表示する表示部を透過した光が入射する第2の撮像素子を設け、この第2の撮像素子で得られた映像信号から、人物の顔を検出する構成を導くことができる。
しかしながら、第2の撮像素子に入射する光は測距枠を表示するための表示部を透過しているため、第2の撮像素子から得られる映像には、選択された測距枠の表示も含まれている。そのため、この測距枠が人物の顔に重なっていると、顔の一部が隠れてしまうため、その顔を精度良く検出することができなくなってしまうことがある。
図11は、測距枠を表示することによって顔の一部が隠れた場合に生じる課題を説明するための図である。カメラは、測距枠が表示されていない段階では、第2の撮像素子から得られた映像信号を用いて二人の人物の顔を検出することができる。
カメラは複数の顔が検出された場合には、各々の顔の大きさ、顔の位置、および、顔の信頼度に基づいて、各々の顔の評価値を求め、最も評価値の高い顔を主被写体として選択する。顔の信頼度とは、その領域が顔である確率を示す値であり、カメラは、この確率が予め定められた閾値を超えている領域を、顔領域と判定する。
カメラは、右側の顔のほうが左側の顔よりも、サイズが大きく、画面の中央に近く、かつ、顔の信頼度が高いため、右側の顔を主被写体と判定する。そして、カメラは、図11(a)に示すように、右側の顔と重なる位置ある測距枠を選択し、この測距枠に色を付ける。
その結果、カメラは、色の付いた測距枠のせいで右側の顔を検出できなくなるか、あるいは、右側の顔の信頼度が著しく低下してしまうため、図11(b)に示すように、左側の顔を主被写体として判定してしまう。
つまり、複数の顔が存在する場合に、主被写体として選択した顔に対して測距枠の表示を行ってしまうと、同じ顔を再び主被写体として選択することが困難になってしまう。
なお、ここでは、被写体として顔を検出する機能を例にあげて説明を行ったが、予め定められた特定の被写体(例えば、特定の個人や、犬や車といった特定の動物や物体)を検出する機能を備えていれば、同様の課題が生じる。
【課題を解決するための手段】
【0005】
前記課題を解決するため、本願発明は、測距枠の位置を示すために測距枠を表示する表示部と、前記表示部を透過した光が入射する測光部と、前記測光部で得られた画像信号から予め定められた被写体を検出する検出部と、前記検出部による検出の結果に応じて、前記表示部が表示することが可能な複数の測距枠のうちの少なくともいずれかの測距枠を選択し、前記表示部に選択した測距枠を表示させる処理部とを有し、前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が所定の閾値以上である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させないことを特徴とする撮像装置を提供する。
【発明の効果】
【0006】
本発明によれば、複数の顔が存在する場合において、主被写体として選択した顔に測距枠の表示が重なったとしても、その顔を引き続き主被写体として選択しやすくする構成を提供することが可能となる。
【図面の簡単な説明】
【0007】
【図1】カメラの要部の構成を模式的に示す図である。
【図2】表示部の測距枠の配置の一例を示す図である。
【図3】測距枠が表示されている場合の、測距枠の大きさに対する顔の大きさの割合と顔検出率の関係を示す図である。
【図4】測距枠が表示されていない場合の、測距枠の大きさに対する顔の大きさと顔検出率の関係を示すグラフである。
【図5】顔検出および追尾のシーケンスを説明するための図である。
【図6】顔検出および追尾の結果による測距枠の移動処理を示すフローチャートである。
【図7】顔以外の被写体に重なる位置にある測距枠が選択されている状態から、顔に重なる位置になる測距枠が選択される状態に遷移する様子を示す図である。
【図8】顔に重なる位置にある測距枠が選択された様子を示す図である。
【図9】顔の大きさに対する測距枠の移動可能範囲の例を示す図である。
【図10】顔の大きさに対する測距枠の移動可能範囲を定めることの効果を説明するための図である。
【図11】従来のカメラの、測距枠を表示することによって顔の一部が隠れた場合に生じる課題を説明するための図である。
【発明を実施するための形態】
【0008】
以下に、本発明の好ましい実施の形態について、添付の図面を参照して詳細に説明する。
図1は、本発明の実施形態にかかる撮像装置である一眼レフカメラの要部の構成を模式的に示す図であり、カメラ本体100と撮影レンズユニット200の断面を示す。
CPU101は、本発明の実施形態にかかるカメラ本体100の各部を制御するものであり、RAMやROMなどで構成されたメモリ102がCPU101に接続されている。撮像素子103は、赤外カットフィルタやローパスフィルタなどを備えたCCDやCMOSセンサなどで構成される。そして、撮像素子103は、撮影時に被写体の像が撮影レンズユニット200を通じて結像される。シャッター104は、非撮影時にはシャッター羽根を閉じて撮像素子103を遮光し、撮影時においてはシャッター羽根を開いて撮像素子103に光を導く。ハーフミラー105は、非撮影時においては、撮影レンズユニット200より入射する光の一部を反射してピント板106に結像させる。
表示部107は、透過型の表示素子であり、CPU101からの指示によって、被写界に測距枠の位置を示す測距枠を色を付けて表示する。そして、表示部107は、測距枠を表示することにより、使用者が光学ファインダーを覗いた場合に、被写界のどの位置の測距情報を用いているかを使用者に示す。
図2は、表示部に表示される複数の測距枠の配置の一例を示す。破線で描かれ、1〜15の符号が付された15個の枠が、複数の測距枠のそれぞれの位置を示す。なお、表示部107には、たとえば透過型のポリマーネットワーク液晶表示素子が適用される。これらの複数の測距枠は、主被写体に係る測距枠として選択されていないときは透過性が高く、測光部108で得られる画像信号にはほとんど影響がない。反対に、主被写体に係る測距枠として選択された測距枠は、色が付くため、測光部108で得られる画像信号にこの選択された測距枠の像が映りこむ。
測光部108は、撮影レンズユニット200を通じて入射した光束を測光する測光センサで構成される。測光部108には、CCDやCMOSセンサなどの撮像素子が使用される。このため、測光部108は、測光のほか、顔検出や追尾を行うことができる。なお、図1に示すように、表示部107は、撮影レンズユニット200を通じて入射した光を測光部108に導く光路の途中に設けられる。
ペンタプリズム109は、ピント板106の被写体像を、測光部108および不図示の光学ファインダーに導く。測光部108には、ピント板に結像した被写体像が、ペンタプリズム109を介して入射する。撮影レンズユニット200から入射してハーフミラー105を透過した光の一部は、AFミラー111によって焦点検出部110に導かれる。そして、焦点検出部110は、AFミラー111によって導かれた光を用いて測距を行う。被写体の検出部としてのAECPU112は、測光部108で得られた信号を用いて画像処理や演算を実行するCPUである。本発明の実施形態にかかるカメラにおいては、AECPU112は、顔検出や追尾の演算や、測光演算を行う。メモリ113はRAMやROMで構成されており、AECPU112に接続されている。なお、本発明の実施形態にかかるカメラは、CPU101と別個のAECPU112を備えるが、CPU101が両方の機能を担ってもよい。撮影レンズユニット内に配設されたCPUであるLPU201は、被写体の距離情報などをCPU101に送信する。
【0009】
次いで、測距枠に対する顔の大きさと顔検出率との関係について、図3と図4を参照して説明する。顔検出率とは、顔の検出に成功する確率である。
図3は、顔と重なる位置にある測距枠を表示した場合の、測距枠の大きさに対するその顔の大きさと、その顔の顔検出率の関係を示すグラフである。図4は、測距枠を表示しない場合の、測距枠の大きさに対する顔の大きさと顔検出率の関係を示すグラフである。
図3に示すように、本発明の実施形態にかかるカメラにおいては、測距枠の大きさは測距枠の横方向の寸法で定義される。また、顔の大きさは、顔の横幅を一辺とし、あごの下端の位置を下辺とした正方形で定義される。もちろん、これは測距枠の大きさと顔の大きさを示す1つの例を示すのであって、測距枠の大きさと顔の大きさの定義の仕方はこれに限られるものではない。
顔検出は、例えば、顔全体の輪郭や、顔の構成要素(目、鼻、耳等)に基づいてテンプレートマッチングによって行われる。あるいは、ニューラルネットワークを使って教材として用意された画像を用いて学習を行い、顔らしい領域を顔として検出することによって行われるようにしてもよい。
図3のグラフに示すように、測距枠の大きさに対する顔の大きさが小さいと、測距枠が、顔検出のために必要な目や口などに重なってこれらを隠してしまう。このため、顔検出率が低くなる。図3と図4を比較することで明らかなように、測距枠が表示されていない場合は、測距枠が表示された場合に比較して、顔検出率は高くなる。このように、測距枠が表示されるか表示されないかよって、顔検出率は大きく変化する。
【0010】
次に、顔検出および追尾のシーケンスについて、図5を参照して説明する。なお、以下の説明において、「AE処理ユニット」、「AF処理ユニット」とは、センサと、それぞれ処理系のCPUを含めたものを意味する。たとえば、AE処理ユニットは、測光部108、AECPU112、および、AECPU112に接続するメモリ113を意味する。AF処理ユニットは、焦点検出部110、CPU101、および、CPU101に接続するメモリ102を意味する。
AE処理ユニットとAF処理ユニットは、所定の周期で測光演算と測距演算を繰り返す。この所定の周期をそれぞれ、「測光周期1」、「測光周期2」、「測光周期3」・・・と呼ぶことにする。
まず、CPU101からの測光開始命令によって、「測光周期1」が開始される。測光周期1が開始されると、AE処理ユニットはa1の期間で電荷の蓄積を行い、蓄積された電荷の読み出しを行う。これに並行して、AF処理ユニットはb1の期間で電荷の蓄積を行い、蓄積された電荷の読み出しを行う。その後、AE処理ユニットは、読み出した画像信号から追尾演算を行い、AF処理ユニットは、読み出した画像信号から測距演算を行う。
AF処理ユニットは、測距演算の結果に基づいて撮影レンズユニット200に含まれるレンズ群を駆動し、いずれかの測距枠の情報に基づいてAF(オートフォーカス)動作を行う。
AE処理ユニットが行う追尾演算は、映像信号に含まれる2枚以上の画像信号から、相関の高い領域を抽出することで、追尾対象となる領域が移動した位置を求める。AE処理ユニットは、測光命令後の最初の追尾演算では、追尾対象となる領域がまだ定まっていないため、実際には追尾演算を実行しない。
そして、AE処理ユニットは、読み出した画像信号を用いて測光演算を行う。続いて、AE処理ユニットは、読み出した画像信号から顔検出演算を行い、顔が検出された場合には、顔の座標、大きさ、および、信頼度を求め、これらを記憶する。
【0011】
続いて、次の「測光周期2」においても、AE処理ユニットはa1の期間で電荷の蓄積を行ってから蓄積された電荷の読み出しを行い、AF処理ユニットはb1の期間で電荷の蓄積を行ってから蓄積された電荷の読み出しを行う。そして、AE処理ユニットは追尾演算を行い、AF処理ユニットは測距演算を行う。
前回の測光周期1において顔が検出された場合には、AE処理ユニットは、直前の測光周期(測光周期1)の画像信号から得られた顔の位置を中心として、顔の大きさに応じた追尾領域を設定する。測光周期1において複数の顔が検出されていた場合には、それぞれの顔に対して追尾領域を設定する。
そして、AE処理ユニットは、直前の測光周期で得られた画像信号から検出されたそれぞれの顔が、測光周期2で得られた画像信号のどこに移動したかを求める。例えば、AE処理ユニットは、測光周期2で設定された追尾領域のうち、直前の測光周期で検出された顔の領域と最も相関の高い領域を抽出し、この抽出した領域に顔が移動したと判定する。具体的には、AE処理ユニットは、測光周期2で得られた画像信号の追尾領域の一部に、直前の測光周期で顔の領域であると判断された画像信号を重ね、その輝度情報や色情報を示す信号レベルの差分を求める。これを、追尾領域の画像信号と、顔の領域であると判断された画像信号を重ねる位置をずらしながら繰り返し行う。そして、AE処理ユニットは、追尾領域のうち、求めた信号レベルの差分が最も小さくなった領域が、最も相関の高い領域であると判断する。もし、測距枠が表示されていたのであれば、測距枠の表示が反映された画像信号は相関を求める際の障害になるため、測距枠と同色の信号を相関の演算から除外するようにしてもよい。
一方、直前の測光周期において顔が検出されなかった場合には、AE処理ユニットは、直前の測光周期で選択された測距枠や、直前の測光周期で追尾に成功した被写体の位置を中心として追尾領域を設定する。直前の測光周期で選択された測距枠とは、ユーザーのマニュアル操作によって指定された測距枠を示す。
測距枠が指定された場合には、直前の測光周期で得られた画像信号のうち、選択された測距枠で囲まれた領域の画像信号を基準として、測光周期2の画像信号のうち最も相関の高い領域を抽出する追尾演算を行う。直前の測光周期で被写体の追尾に成功している場合には、追尾によって抽出された被写体の領域の画像信号を基準として、測光周期2の画像信号のうち最も相関の高い領域を抽出する追尾演算を行う。
その後、AE処理ユニットからの追尾演算の結果を受けて、AF処理ユニットは測距枠を選択する演算を行う。ここで、測光周期1で顔が検出されていない場合には、AF処理ユニットは、測光周期2におけるAE処理ユニットによる追尾演算(すなわち、輝度情報や色情報を用いる追尾演算)の結果のみに従って測距枠を移動させる。測光周期1で顔が検出されている場合には、AF処理ユニットは、所定の条件を満たすことを条件として、測距枠を測光周期1で検出された顔の位置に移動させる。
そして、AF処理ユニットは、新たに選択した測距枠から得られた測距演算の結果に基づいて撮影レンズユニット200に含まれるレンズ群を駆動し、AF動作を行う。
さらに、AE処理ユニットは、測光周期2で得られた画像を用いて、測光演算と顔検出演算を行う。測光周期3以降も、AE処理ユニットとAF処理ユニットは、このような動作を繰り返す。
【0012】
次いで、本発明の実施形態にかかるカメラの制御方法およびプログラムについて、図6を参照して説明する。本発明の実施形態にかかるカメラの制御方法およびプログラムは、本発明の実施形態にかかるカメラに、顔検出および追尾の結果による測距枠の移動を行わせるものである。
図6は、顔検出および追尾の測距枠移動アルゴリズムの処理を示したフローチャートである。この処理は、プログラムとしてメモリ113に保存されており、CPU101およびAECPU112がメモリ113から読み出して実行する。すなわち、CPU101、AECPU112およびメモリ113がカメラのコンピュータとなる。
【0013】
処理部であるCPU101は、顔検出および追尾の処理を開始すると、まずステップS101において、表示部107が測距枠を表示しているか否かを判断する。そして、表示部107が測距枠を表示している場合には、ステップS102に進む。
ステップS102においては、CPU101は、「測距枠の大きさに対する顔の大きさの割合」の閾値を設定する。この閾値は、現在選択されている測距枠の位置から、新たに検出された顔の位置に測距枠を移動させるか否かの判断に用いられる。この閾値は、顔の検出率が所望の値(または所望の値以上)になる「測距枠の大きさに対する顔の大きさの割合」が適用される。たとえば、図3に示すように、顔の検出率が80%以上である場合に、その顔へ測距枠を移動させるためには、この閾値に「3」が設定される。なお、「顔の検出率」と「測距枠の大きさに対する顔の大きさの割合」との関係は、測距枠の形状や、測距枠の線の太さなどに依存する。このため、表示部の種類ごとにこの関係を測定し、測定結果に基づいてこの閾値を設定すればよい。あるいは、現在顔に重なる位置にある測距枠が選択されているならば、その顔の「測距枠の大きさに対する顔の大きさの割合」と同じ値か、あるいは、それよりも大きな値を閾値として設定すればよい。
なお、測距枠の大きさが一定であるため、測距枠の大きさに対する顔の大きさの割合の閾値を設定することと、顔の大きさの閾値を設定することは同じことである。以下、説明を簡潔にするため、測距枠の大きさに対する顔の大きさの割合が閾値以上となることを、単に、顔の大きさが閾値以上となると表現することもある。
ステップS101において、CPU101は、表示部107が測距枠を表示していないと判断した場合には、測距枠が顔検出の障害にならないので、顔への測距枠移動の閾値を設けなくても良い。ただし、図4に示すように、顔が小さくなると顔検出率が徐々に低下するので、CPU101は、表示部107が測距枠を表示していないと判断された場合であっても、あらかじめ所定の大きさの閾値を設定する。ただし、この所定の大きさの閾値は、ステップS102で設定される閾値よりも小さい値とする。
このように、CPU101は、表示部107が測距枠を表示しているか表示していないかによって、閾値を変化させる。
次いで、ステップS103において、AECPU112は、AE処理ユニットにa1の期間で電荷の蓄積を行わせ、画像信号を生成させる。
ステップS104において、AECPU112は、ステップS103において得られた画像信号を用いて、追尾演算、測光演算、および、顔検出演算を行う。AECPU112は、追尾演算の結果と、顔検出演算の結果をCPU101に送信する。この顔検出演算の結果には、検出されたそれぞれの顔の大きさ、座標、および、信頼度の情報が含まれている。
ステップS105において、CPU101は、ステップS104における顔検出演算において顔が検出されたか否かを判断する。
そして、顔が検出されなかった場合には、CPU101はステップS110に進み、ステップS104における追尾演算の結果に応じた位置に測距枠を移動させる。
一方、CPU101は、顔が検出された場合にはステップS106に進む。ステップS106においては、CPU101は、検出された顔の中から、主被写体となる顔(以下、主顔と称する)を選択する。主被写体が、追尾演算における追尾対象となる。ステップS105において一つのみの顔が検出された場合には、検出された顔が主顔に選択される。ステップS105において複数の顔が検出された場合には、それらの中の一つが主顔に選択される。主顔の選択方法としては、たとえば、検出された顔の座標、大きさ、および、信頼度に応じて選択されるものとする。顔の位置が画像の中央部に近いほど、顔のサイズが大きいほど、顔の信頼度が高いほど、主顔として選択されやすくなる。なお、本実施形態においては、少なくとも顔の座標と大きさに基づいて主顔を選択する構成であればよい。
次いで、ステップS107において、CPU101は、主顔の大きさが設定された閾値以上であるかを判断する。この閾値は、ステップS102にて説明した閾値である。
そして、主顔の大きさが閾値未満であった場合には、AECPU112はステップS110に進む。ステップS110では、AECPU112は、ステップS104における追尾演算の結果に応じた位置に測距枠を移動させる。
一方、主顔の大きさが閾値以上である場合には、AECPU112はステップS108に進む。S108においては、AECPU112は、現在選択されている測距枠と主顔が検出された位置との距離を演算する。
そして、AECPU112は、演算された距離が所定の範囲内である場合には(=所定の距離よりも短い場合には)、ステップS109に進み、所定の範囲内にない場合にはステップS110に進む。
現在選択されている測距枠と主顔の位置とが大きく離れている場合には、使用者が主被写体として考えている人物の顔が測距枠の影響によって検出されておらず、別の人物の顔が主顔として選択されている可能性が高い。そこで、現在選択されている測距枠と主顔との距離が所定の範囲内にない場合には、AECPU112は主顔を主被写体(=追尾対象)とみなさず、測距枠を移動させない。
ステップS109においては、AECPU112は、選択された主顔の位置に測距枠を移動させる。そして、AE処理ユニットは、移動させた位置において、AF動作を行う。なお、この「所定の範囲」の具体的な値は、直前の測光周期で検出された顔の大きさに応じて、適宜設定される。
図9(a)は、顔の大きさに対する測距枠の移動可能範囲の例を示す表である。図9(b)(c)は、例として測距枠8が選択されているとき(図9(b))と、測距枠15が選択されているとき(図9(c))の、測距枠の移動可能範囲を示す図である。このように顔の大きさに対する測距枠の移動可能範囲を定めることによって、使用者の意図する顔に測距枠が移動する確率を上げることができる。
【0014】
なお、現在選択されている測距枠の位置で何回か連続して顔が検出されなかった場合には、現在選択されている測距枠以外の顔の位置に測距枠を移動させる、という処理が付加される構成であってもよい。このような処理が付加されないと、たとえば、測距枠の大きさに対する顔の大きさの割合が3の場合(=顔検出率が80%の場合)には、20%の確率で、測距枠が使用者の意図しない別の顔に移動する可能性がある。そこで、このような処理が付加されることによって、この確率を大幅に減らすことができる。
一例として、「現在選択されている測距枠の位置で三回連続して顔が検出されなかった場合に、現在選択されている測距枠以外の顔の位置に測距枠を移動させる」という処理が付加される構成を示す。この処理が付加されると、顔検出率が80%の場合には、意図しない顔に測距枠が移動する確率P(=3回連続して顔が検出されない確率)は、下記の式1から1%程度になる。
P=1−(1/5)3=124/125=0.992(%) (式1)
【0015】
次いで、本発明の実施形態にかかるカメラの制御方法が実行された場合における測距枠の移動について説明する。
図7(a)乃至図7(d)は、顔以外の被写体に重なる位置にある測距枠が選択されている状態から、顔に重なる位置にある測距枠が選択される状態に遷移する様子を示す図である。
図7(a)に示すように、使用者は、最初に測距枠を主被写体の胴体に合わせたとする。この場合には、図7(b)に示すように、AECPU112は、測距枠に対する主被写体の顔の大きさの割合が閾値以上になるまでは、現在選択されている測距枠(測距枠8)の位置における領域の画像信号を、追尾演算の対象として、その位置(胴体)でAFを行う。そして、図7(c)に示すように、測距枠に対する主被写体の顔の大きさの割合が閾値以上となった場合には、AECPU112は、主被写体の顔に重なる位置の測距枠を新たに選択する。そして、カメラは、顔でAF動作を行う。このため、主被写体の顔(=主顔)に焦点が合う。そして、図7(d)に示すように、AECPU112は主被写体の顔の追尾を行い、主被写体の顔に焦点があった状態を継続する。
図8(a)および図8(b)は、顔に重なる位置にある測距枠が選択された様子を示す図である。
AECPU112は、測距枠が選択されていない状態で2つの顔を検出し、右側の顔のほうが左側の顔よりも、サイズが大きく、画面の中央に近く、かつ、顔の信頼度が高いため、右側の顔を主被写体と判定する。そして、AECPU112は、右側の顔と重なる位置ある測距枠を選択し、色を付けて選択した測距枠を表示する。
直後の測光周期において、図8(a)に示す画像信号がAE処理ユニットにて得られる。AECPU112は、選択された測距枠の位置にある右側の人物の顔は、測距枠の表示の影響で検出できないが、左側の人物の顔は検出できる。
この時点で、左側の人物の顔しか検出できていないのだから、従来の技術では、小さいけれども検出に成功した左側の人物の顔に重なる位置の測距枠が、新たに選択されてしまっていた。しかしながら、本実施形態のカメラは、顔の大きさに閾値を設定することにより、主被写体の顔が検出されず、かつ、他の人物の顔が検出されたとしても、その他の人物の顔の大きさが十分で無いのであれば、測距枠を新たに選択することはない。つまり、図8(b)に示すように、そのまま主被写体の顔に対してAF動作を行うことができる。
ここで、図9で示した顔の大きさに対する測距枠の移動可能範囲を決めることのメリットについて、図10を参照して説明する。図10(a)に示すように、使用者が、最初に左側の人物の体の位置にある測距枠を選択した場合を仮定する。また、測距枠の移動を許容する顔の大きさの閾値を「2」に設定したと仮定する。このとき、左側の人物の顔は小さいので顔検出できていない。一方、使用者が選択していない右側の人物の顔は顔検出できる大きさであり、測距枠の大きさに対する顔の大きさの割合が2以上かつ2.5以下である。このとき、測距枠の移動可能範囲を設定せずに、測距枠の移動を許容する顔の大きさの閾値を「2」と決めるだけでは、この主被写体でない右側の人物の顔に測距枠が移動してしまう可能性がある。
しかしながら、図9で示したように、顔の大きさに対する測距枠の移動可能範囲を制限することによって、使用者の意図と異なる顔に測距枠が移動するのを抑制することができる。そして、カメラは左側の人物の体の位置を追尾し、体と重なる位置の測距枠から得られる情報を用いてAF動作を行う。
図10(b)に示すように、左側の人物がカメラに近づき、左側の人物の顔が検出できるようになる。そして、測距枠に対する主被写体の顔の大きさの割合が「2」を超えると、カメラは、体と重なる位置にある測距枠8に代わって、その顔の大きさに対応する移動可能範囲内に含まれ、かつ、その顔と重なる測距枠3を新たに選択する。そして、AECPU112はこの左側の人物の追尾を行い、この顔に重なる位置の測距枠から得られる情報を用いてAF動作を行う。このとき、左側の人物の顔が測距枠に隠れることで、右側の人物の顔に測距枠が移動してしまうことを防ぐため、一度、顔検出ができて顔の追尾を始めたら、暫くの間は、別の位置で顔が見つかっても測距枠を移動させないという処理を入れても構わない。
【0016】
以上説明したとおり、従来の構成では、被写界内に複数の顔が存在する場合において、現在追尾している顔が表示される測距枠により検出できなくなると、測距枠が別の顔に移動する。しかしながら、本発明の実施形態によれば、AECPU112は、現在選択されている測距枠で追尾を継続し、閾値以上の大きさの顔が存在する場合に限って、この顔に測距枠を移動させる。このため、本発明の実施形態によれば、主被写体の顔(=主顔)が検出できなくなった場合や、顔の検出率が低下した場合であっても、測距枠が使用者の意図する位置から他の位置に移動することを防止できる。
【0017】
以上、本発明の実施形態について詳細に説明したが、前記実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
例えば、CPU101は図6のステップS101において、単に測距枠を表示しているか否かの判定を行っているが、顔に重なる位置の測距枠が表示されているか否かの判定を行うようにしてもよい。あるいは、CPU101は、ステップS102において、顔が検出される前に測距枠の表示が行われたときの閾値を、顔が検出された後に測距枠の表示が行われたときの閾値よりも、小さく設定するようにしてもよい。いずれの顔も検出されていない状態であれば、測距枠の表示によって顔検出が妨げられている可能性が低いためである。
さらに、図6のフローチャートでは、CPU101は、主顔に対してのみステップS107乃至S108の判定を行っているが、検出できた全ての顔に対してこれらステップS107乃至S108の判定を行うようにしてもよい。
また、上述した実施形態では、顔を検出する機能を例にあげて説明を行ったが、予め定められた特定の被写体(例えば、特定の個人や、犬や車といった特定の動物や物体)を検出する機能を備えていれば、同様の構成を適用することが可能である。また、上述した実施形態の機能を実現する構成は、静止画を撮像するカメラに限られず、動画を撮影するカメラにも適用できる。
【0018】
また、前記実施形態の機能を実現するプログラムを、記録媒体から直接、或いは有線/無線通信を用いてプログラムを実行可能なコンピュータを有するシステムまたは装置に供給して実行する構成も、本発明に含まれる。従って、本発明の機能処理をコンピュータで実現するために、当該コンピュータに供給されてインストールされるプログラムコード自体も、本発明を実現するものである。つまり、本発明の機能処理を実現するためのプログラム自体も本発明に含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、MO、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等が適用できる。また、光/光磁気記憶媒体、不揮発性の半導体メモリも適用できる。
【符号の説明】
【0019】
100 カメラ本体
101 カメラマイコン(CPU)
103 撮像素子
105 ハーフミラー
107 表示部
108 測光部
110 焦点検出部
112 画像処理・演算用のCPU(AECPU)
200 撮影レンズユニット
201 レンズ内マイコン(LPU)
【特許請求の範囲】
【請求項1】
測距枠の位置を示すために測距枠を表示する表示部と、
前記表示部を透過した光が入射する測光部と、
前記測光部で得られた画像信号から予め定められた被写体を検出する検出部と、
前記検出部による検出の結果に応じて、前記表示部が表示することが可能な複数の測距枠のうちの少なくともいずれかの測距枠を選択し、前記表示部に選択した測距枠を表示させる処理部とを有し、
前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が所定の閾値以上である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させないことを特徴とする被写体検出機能を備えた撮像装置。
【請求項2】
前記処理部は、前記表示部に前記測距枠が表示されない場合と、前記表示部に前記測距枠が表示されている場合とで、前記閾値を変化させることを特徴とする請求項1に記載の被写体検出機能を備えた撮像装置。
【請求項3】
前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が前記閾値以上である場合であって、かつ、検出された前記被写体の位置が現在選択されている測距枠の位置から所定の範囲内にある場合に、前記表示部に表示させる測距枠の位置を前記被写体に応じた位置に移動させることを特徴とする請求項1または2に記載の被写体検出機能を備えた撮像装置。
【請求項4】
前記処理部は、前記所定の範囲を、検出された前記被写体の大きさに応じて設定することを特徴とする請求項3に記載の被写体検出機能を備えた撮像装置。
【請求項5】
前記検出部は、測距枠が示す位置における画像信号に対する相関が高い領域を、別の画像信号から抽出する追尾演算を行い、
前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が前記閾値未満である場合には、前記表示部に表示させる測距枠の位置を前記追尾演算にて抽出された領域に応じた位置に移動させることを特徴とする請求項1乃至4のいずれか1項に記載の被写体検出機能を備えた撮像装置。
【請求項6】
測距枠の位置を示すために測距枠を表示する表示部を有する撮像装置の制御方法であって、
前記表示部を透過した光が入射される測光部で得られた画像信号から、予め定めた被写体を検出するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が所定の閾値以上であるか否かを判断するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が前記閾値以上である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させないステップとを有することを特徴とする撮像装置の制御方法。
【請求項7】
測距枠の位置を示すために測距枠を表示する表示部を有する撮像装置の制御に用いるプログラムであって、
前記表示部を透過した光が入射される測光部で得られた画像信号から、予め定めた被写体を検出するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が所定の閾値以上であるか否かを判断するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が前記閾値以上である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させないステップとを前記撮像装置のコンピュータに実行させることを特徴とするプログラム。
【請求項1】
測距枠の位置を示すために測距枠を表示する表示部と、
前記表示部を透過した光が入射する測光部と、
前記測光部で得られた画像信号から予め定められた被写体を検出する検出部と、
前記検出部による検出の結果に応じて、前記表示部が表示することが可能な複数の測距枠のうちの少なくともいずれかの測距枠を選択し、前記表示部に選択した測距枠を表示させる処理部とを有し、
前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が所定の閾値以上である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部に表示させる測距枠の位置を前記検出された被写体に応じた位置に移動させないことを特徴とする被写体検出機能を備えた撮像装置。
【請求項2】
前記処理部は、前記表示部に前記測距枠が表示されない場合と、前記表示部に前記測距枠が表示されている場合とで、前記閾値を変化させることを特徴とする請求項1に記載の被写体検出機能を備えた撮像装置。
【請求項3】
前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が前記閾値以上である場合であって、かつ、検出された前記被写体の位置が現在選択されている測距枠の位置から所定の範囲内にある場合に、前記表示部に表示させる測距枠の位置を前記被写体に応じた位置に移動させることを特徴とする請求項1または2に記載の被写体検出機能を備えた撮像装置。
【請求項4】
前記処理部は、前記所定の範囲を、検出された前記被写体の大きさに応じて設定することを特徴とする請求項3に記載の被写体検出機能を備えた撮像装置。
【請求項5】
前記検出部は、測距枠が示す位置における画像信号に対する相関が高い領域を、別の画像信号から抽出する追尾演算を行い、
前記処理部は、前記表示部に表示される測距枠の大きさに対する検出された前記被写体の大きさの割合が前記閾値未満である場合には、前記表示部に表示させる測距枠の位置を前記追尾演算にて抽出された領域に応じた位置に移動させることを特徴とする請求項1乃至4のいずれか1項に記載の被写体検出機能を備えた撮像装置。
【請求項6】
測距枠の位置を示すために測距枠を表示する表示部を有する撮像装置の制御方法であって、
前記表示部を透過した光が入射される測光部で得られた画像信号から、予め定めた被写体を検出するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が所定の閾値以上であるか否かを判断するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が前記閾値以上である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させないステップとを有することを特徴とする撮像装置の制御方法。
【請求項7】
測距枠の位置を示すために測距枠を表示する表示部を有する撮像装置の制御に用いるプログラムであって、
前記表示部を透過した光が入射される測光部で得られた画像信号から、予め定めた被写体を検出するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が所定の閾値以上であるか否かを判断するステップと、
前記測距枠の大きさに対する前記被写体の大きさの割合が前記閾値以上である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させ、前記閾値未満である場合には、前記表示部において表示する測距枠の位置を前記被写体に応じた位置に移動させないステップとを前記撮像装置のコンピュータに実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−34177(P2013−34177A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2012−108679(P2012−108679)
【出願日】平成24年5月10日(2012.5.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願日】平成24年5月10日(2012.5.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]