以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。図1(a)、図1(b)は、本発明を適用可能な撮像装置(電子機器である)の一例としての一眼レフカメラ(以降、カメラと称する)100本体の外観図である。具体的には、図1(a)はカメラ100を第1面(前面)側から見た図であり、撮影レンズユニットを外した状態を示す。図1(b)は、カメラ100を第2面(背面)側から見た図である。第1面はカメラ前面であり、被写体側の面(撮像方向側の面)である。第2面はカメラの背面であって、第1の面の裏側(反対側)の面であり、ファインダー16を覗く撮影者側の面である。
図1(a)に示すように、カメラ100には、横持ちでの撮影時にカメラ100を使用するユーザーがカメラ100を安定して握り、操作できるよう、前方に突出した第1グリップ部101が設けられている。またカメラ100には、縦持ちでの撮影時にカメラ100を使用するユーザーがカメラ100を安定して握り、操作できるよう、前方に突出した第2グリップ部102が設けられている。第1グリップ部101は、カメラ100の前面の第1の辺(図1(a)の左右にある2つの縦辺のうち左側の辺)に沿っており、第2グリップ部102は、前面のうち第1の辺と隣り合う第2の辺(図1(a)の上下にある2つの横辺のうち下側の辺)に沿っている。シャッターボタン103,105は、撮影指示を行うための操作部材である。メイン電子ダイヤル104,106は回転操作部材であり、メイン電子ダイヤル104,106を回すことで、シャッター速度や絞りなどの設定値の変更等が行える。シャッターボタン103,105、及びメイン電子ダイヤル104,106は、操作部70に含まれる。シャッターボタン103とメイン電子ダイヤル104は横持ち撮影用、シャッターボタン105とメイン電子ダイヤル106は縦持ち撮影用として主に使用することができる。
図1(b)において、表示部28は画像や各種情報を表示する。表示部28はタッチ操作を受付け可能(タッチ検出可能)なタッチパネル70aと重畳、もしくは一体となって設けられる。AF-ONボタン1,2は、焦点調節位置を設定したり、AFを開始したりするための操作部材であり、操作部70に含まれる。本実施形態では、AF-ONボタン1,2は、タッチ操作や押し込み操作を受け付けることが可能なタッチ操作部材(本実施形態では、赤外線式センサー)である。このような光学式の操作部材を、光学トラッキングポインター(OTP)と称するものとする。ユーザーは、横持ちで(カメラ100を横位置で構えた状態で)、ファインダー16を覗いたまま、AF-ONボタン1に対して、第1グリップ部101を握った右手の親指で、タッチ操作や、任意の2次元方向へのスライド操作を行うことができる。また、ユーザーは、縦持ちで、ファインダー16を覗いたまま、AF-ONボタン2に対して、第2グリップ部102を握った右手の親指で、タッチ操作や、任意の2次元方向へのスライド操作を行うことができる。縦持ちとは、カメラ100を横位置と90度異なる縦位置で構えた状態である。カメラ100を操作するユーザーは、AF-ONボタン1、またはAF-ONボタン2へのスライド操作で、表示部28に表示された測距点枠(AFに用いるAF枠の位置、焦点調節位置、焦点検出位置)を移動させることができる。また、ユーザーは、AF-ONボタン1、またはAF-ONボタン2への押し込み操作で、測距点枠の位置に基づくAFを即座に開始させることができる。AF-ONボタン1は横持ち撮影用、AF-ONボタン2は縦持ち撮影用として主に使用することができる。
AF-ONボタン1,2の配置について説明する。図1(b)に示すように、AF-ONボタン1,2はカメラ100の背面に配置されている。そして、AF-ONボタン2は、カメラ100の背面のうち、他の頂点よりも、第1グリップ部101に沿った辺(第1の辺)と第2グリップ部102に沿った辺(第2の辺)との成す頂点に近い位置に配置されている。また、AF-ONボタン2のほうが、AF-ONボタン1よりも、第1グリップ部101に沿った辺と第2グリップ部102に沿った辺との成す上記頂点に近い位置に配置されている。カメラ100の背面のうち第1グリップ部101に沿った辺(第1の辺)とは、図1(b)における左右にある2つの縦辺のうち右側の辺である。カメラ100の背面のうち第2グリップ部102に沿った辺(第2の辺)とは、図1(b)における上下にある2つの横辺のうち下側の辺である。ここで、上述した頂点は、カメラ100の背面を多角形とみなした場合の当該多角形の頂点(仮想的な頂点)である。カメラ100の背面が完全な多角形であれば、上述した頂点は、当該多角形の頂点(カメラ100の実際の頂点)であってもよい。第1の辺は、図1(b)における左右方向の右側の辺(縦辺)であり、第2の辺は図1(b)における上下方向の下側の辺(横辺)であり、第1の辺と第2の辺との成す上述の頂点は、図1(b)における右下の頂点である。さらに、AF-ONボタン2は、第1グリップ部101に沿った辺(第1の辺)のうち、AF-ONボタン1がある側の端部(すなわち上端部)よりも、反対側の端部(下端部)に近い位置に配置されている。また、上述したシャッターボタン103は、第1グリップ部101を握った右手の人差し指で操作可能(押下可能)な位置に配置されており、シャッターボタン105は、第2グリップ部102を握った右手の人差し指で操作可能な位置に配置されている。そして、AF-ONボタン1のほうが、AF-ONボタン2よりも、シャッターボタン103に近い位置に配置されており、AF-ONボタン2のほうが、AF-ONボタン1よりも、シャッターボタン105に近い位置に配置されている。
なお、AF-ONボタン1,2は、タッチパネル70aとは異なる操作部材であり、表示機能は備えていない。また、後述する例では、AF-ONボタン1、2への操作で選択された測距位置を示すインジケーター(AF枠)を移動させる例を説明するが、AF-ONボタン1,2への操作に応じて実行される機能は特に限定されない。例えば、表示部28に表示され、かつ移動させることができるものであれば、AF-ONボタン1,2へのスライド操作で移動させるインジケーターはいかなるものでもよい。例えば、マウスカーソルのような、ポインティングカーソルであってもよいし、複数の選択肢(メニュー画面に表示された複数の項目など)のうち選択された選択肢を示すカーソルであってもよい。AF-ONボタン1へのスライド操作と、AF-ONボタン2へのスライド操作とで異なるインジケーターが移動してもよい。AF-ONボタン1,2への押し込み操作で実行される機能は、AF-ONボタン1,2へのスライド操作で実行される機能に関する他の機能であってもよい。
モード切り替えスイッチ60は、各種モードを切り替えるための操作部材である。電源スイッチ72は、カメラ100の電源のONとOFFを切り替える操作部材である。サブ電子ダイヤル73は選択枠の移動や画像送りなどを行う回転操作部材である。8方向キー74a,74bは、上、下、左、右、左上、左下、右上、右下方向にそれぞれ押し倒し可能な操作部材であり、8方向キー74a,74bの押し倒された方向に応じた処理が可能である。8方向キー74aは横持ち撮影用、8方向キー74bは縦持ち撮影用として主に使用することができる。SETボタン75は、主に選択項目の決定などに用いられる操作部材である。静止画/動画切り替えスイッチ77は、静止画撮影モードと動画撮影モードを切り替える操作部材である。LVボタン78は、ライブビュー(以下、LV)のONとOFFを切り替える操作部材である。LVがONとなると後述するミラー12が光軸から退避した退避位置に移動(ミラーアップ)して被写体光が後述する撮像部22に導かれ、LV画像の撮像が行われるLVモードとなる。LVモードでは、LV画像で被写体像を確認できる。LVがOFFとなるとミラー12が光軸上に移動(ミラーダウン)して被写体光が反射され、被写体光がファインダー16に導かれ、被写体の光学像(光学の被写体像)がファインダー16から視認可能なOVFモードとなる。再生ボタン79は、撮影モード(撮影画面)と再生モード(再生画面)とを切り替える操作部材である。撮影モード中に再生ボタン79を押下することで再生モードに移行し、記録媒体200(図2で後述する)に記録された画像のうち最新の画像を表示部28に表示させることができる。Qボタン76はクイック設定をするための操作部材であり、撮影画面においてQボタン76を押下すると設定値の一覧として表示されていた設定項目を選択可能になり、さらに設定項目を選択すると各設定項目の設定画面へと遷移することができるようになる。モード切り替えスイッチ60、電源スイッチ72、サブ電子ダイヤル73、8方向キー74a,74b、SETボタン75、Qボタン76、静止画/動画切り替えスイッチ77、LVボタン78、再生ボタン79は、操作部70に含まれる。メニューボタン81は、操作部70に含まれ、カメラ100の各種設定を行うための操作部材である。メニューボタン81が押されると各種の設定可能なメニュー画面が表示部28に表示される。ユーザーは、表示部28に表示されたメニュー画面と、サブ電子ダイヤル73、8方向キー74a,74b、SETボタン75、メイン電子ダイヤル104,106を用いて直感的に各種設定を行うことができる。ファインダー16はレンズユニットを通して得た被写体の光学像の焦点や構図の確認を行うための覗き込み型(接眼式)のファインダーである。INFOボタン82は操作部70に含まれ、カメラ100の各種情報を表示部28に表示することができる。
図2は、カメラ100の構成例を示すブロック図である。レンズユニット150は、交換可能な撮影レンズを搭載するレンズユニットである。レンズ155は通常、フォーカスレンズ群、ズームレンズ群などの複数枚のレンズから構成されるが、図2では簡略して一枚のレンズのみで示している。通信端子6はレンズユニット150がカメラ100側と通信を行うための通信端子であり、通信端子10はカメラ100がレンズユニット150側と通信を行うための通信端子である。レンズユニット150は、これら通信端子6,10を介してシステム制御部50と通信する。そして、レンズユニット150は、内部のレンズシステム制御回路154によって、絞り駆動回路152を介して絞り151の制御を行い、AF駆動回路153を介してレンズ155の位置を変位させることで焦点を合わせる。レンズユニット150を装着可能な装着部を介してレンズユニット150は表示部28のある本体側に装着される。レンズユニット150として単焦点レンズやズームレンズなどの様々な種類のものを装着することができる。
AEセンサー17は、レンズユニット150、クイックリターンミラー12を通ってフォーカシングスクリーン13上に結像した被写体(被写体光)の輝度を測光する。焦点検出部11は、クイックリターンミラー12を介して入射する像(被写体光)を撮像し、システム制御部50にデフォーカス量情報を出力する位相差検出方式のAFセンサーである。システム制御部50はデフォーカス量情報に基づいてレンズユニット150を制御し、位相差AFを行う。AFの方法は、位相差AFでなくてもよく、コントラストAFでもよい。また、位相差AFは、焦点検出部11を用いずに、撮像部22の撮像面で検出されたデフォーカス量に基づいて行ってもよい(撮像面位相差AF)。
クイックリターンミラー12(以下、ミラー12)は、露光、ライブビュー撮影、動画撮影の際にシステム制御部50から指示されて、不図示のアクチュエータによりアップダウンされる。ミラー12は、レンズ155から入射した光束をファインダー16側と撮像部22側とに切り替えるためのミラーである。ミラー12は通常時はファインダー16へと光束を導く(反射させる)ように配されているが(ミラーダウン)、撮影やライブビュー表示が行われる場合には、撮像部22へと光束を導くように上方に跳ね上がり光束中から待避する(ミラーアップ)。またミラー12はその中央部が光の一部を透過できるようにハーフミラーとなっており、光束の一部を、焦点検出を行うための焦点検出部11に入射するように透過させる。
ユーザーは、ペンタプリズム14とファインダー16を介して、フォーカシングスクリーン13上に結像した像を観察することで、レンズユニット150を通して得た被写体の光学像の焦点状態や構図の確認が可能となる。
フォーカルプレーンシャッター21(シャッター21)は、システム制御部50の制御で撮像部22の露光時間を制御するためのものである。
撮像部22は光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像素子(撮像センサー)である。A/D変換器23は、撮像部22から出力されるアナログ信号をデジタル信号に変換するために用いられる。
画像処理部24は、A/D変換器23からのデータ、又は、メモリ制御部15からのデータに対し所定の処理(画素補間、縮小といったリサイズ処理や色変換処理)を行う。また、画像処理部24では、撮像した画像データを用いて所定の演算処理が行われ、得られた演算結果に基づいてシステム制御部50が露光制御、測距制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理が行われる。画像処理部24では更に、撮像した画像データを用いて所定の演算処理が行われ、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行われる。
メモリ32は、撮像部22によって得られA/D変換器23によりデジタルデータに変換された画像データや、表示部28に表示するための画像データを格納する。メモリ32は、所定枚数の静止画像や所定時間の動画像および音声を格納するのに十分な記憶容量を備えている。メモリ32は、メモリカードなどの着脱可能な記録媒体であっても、内蔵メモリであってもよい。
表示部28は画像を表示するための背面モニタであり、図1(b)に示すようにカメラ100の背面に設けられている。D/A変換器19は、メモリ32に格納されている画像表示用のデータをアナログ信号に変換して表示部28に供給する。表示部28は、画像を表示するディスプレイであれば、液晶方式のディスプレイであっても、有機ELなど他の方式のディスプレイであってもよい。
ファインダー内表示部41には、ファインダー内表示部駆動回路42を介して、現在オートフォーカスが行われている測距点を示す枠(AF枠)や、カメラの設定状態を表すアイコンなどが表示される。ファインダー外表示部43には、ファインダー外表示部駆動回路44を介して、シャッター速度や絞りをはじめとするカメラ100の様々な設定値が表示される。
姿勢検知部55は、カメラ100の角度による姿勢を検出するためのセンサーである。姿勢検知部55で検知された姿勢に基づいて、撮像部22で撮影された画像が、カメラ100を横に構えて撮影された画像であるか、縦に構えて撮影された画像であるかを判別可能である。システム制御部50は、姿勢検知部55で検知された姿勢に応じた向き情報を撮像部22で撮像された画像の画像ファイルに付加したり、画像を回転して記録したりすることが可能である。姿勢検知部55としては、加速度センサーやジャイロセンサーなどを用いることができる。姿勢検知部55である、加速度センサーやジャイロセンサーを用いて、カメラ100の動き(パン、チルト、持ち上げ、静止しているか否か等)を検知することも可能である。
不揮発性メモリ56は、システム制御部50によって電気的に消去・記録可能なメモリであり、例えばEEPROM等が用いられる。不揮発性メモリ56には、システム制御部50の動作用の定数、プログラム等が記憶される。ここでいう、プログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムのことである。
システム制御部50は、少なくとも1つのプロセッサー(回路を含む)を内蔵し、カメラ100全体を制御する。システム制御部50は、前記の不揮発性メモリ56に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。システムメモリ52では、システム制御部50の動作用の定数、変数、不揮発性メモリ56から読み出したプログラム等を展開する。また、システム制御部50はメモリ32、D/A変換器19、表示部28等を制御することにより表示制御も行う。
システムタイマー53は各種制御に用いる時間や、内蔵された時計の時間を計測する計時部である。モード切り替えスイッチ60は、システム制御部50の動作モードを静止画撮影モード、動画撮影モード等のいずれかに切り替える。静止画撮影モードには、Pモード(プログラムAE)、Mモード(マニュアル)等が含まれる。あるいは、モード切り替えスイッチ60でメニュー画面に一旦切り換えた後に、メニュー画面に含まれるこれらのモードのいずれかに、他の操作部材を用いて切り替えるようにしてもよい。同様に、動画撮影モードにも複数のモードが含まれていてもよい。Mモードでは、絞り値、シャッター速度、ISO感度をユーザーが設定でき、ユーザー目的の露出で撮影を行うことができる。
第1シャッタースイッチ62は、カメラ100に設けられたシャッターボタン103,105の操作途中、いわゆる半押し(撮影準備指示)でONとなり第1シャッタースイッチ信号SW1を発生する。システム制御部50は、第1シャッタースイッチ信号SW1により、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作を開始する。またAEセンサー17による測光も行う。
第2シャッタースイッチ64は、シャッターボタン103,105の操作完了、いわゆる全押し(撮影指示)でONとなり、第2シャッタースイッチ信号SW2を発生する。システム制御部50は、第2シャッタースイッチ信号SW2により、撮像部22からの信号読み出しから記録媒体200に画像ファイルとして画像を記録するまでの一連の撮影処理の動作を開始する。
電源制御部83は、電池検出回路、DC-DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出を行う。また、電源制御部83は、その検出結果及びシステム制御部50の指示に基づいてDC-DCコンバータを制御し、必要な電圧を必要な期間、記録媒体200を含む各部へ供給する。電源スイッチ72はカメラ100の電源のONとOFFを切り替えるためのスイッチである。
電源部30は、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。記録媒体I/F18は、メモリカードやハードディスク等の記録媒体200とのインターフェースである。記録媒体200は、撮影された画像を記録するためのメモリカード等の記録媒体であり、半導体メモリや磁気ディスク等から構成される。
上述したように、カメラ100は、操作部70の一つとして、表示部28(タッチパネル70a)に対する接触を検知可能なタッチパネル70aを有する。タッチパネル70aと表示部28とは一体的に構成することができる。例えば、タッチパネル70aを光の透過率が表示部28の表示を妨げないように構成し、表示部28の表示面の上層に取り付ける。そして、タッチパネル70aにおける入力座標と、表示部28上の表示座標とを対応付ける。これにより、恰もユーザーが表示部28上に表示された画面を直接的に操作可能であるかのようなGUI(グラフィカルユーザーインターフェース)を構成することができる。システム制御部50はタッチパネル70aへの以下のタッチ操作、あるいは状態を検知できる。
・タッチパネル70aにタッチしていなかった指やペンが新たにタッチパネル70aにタッチしたこと。すなわち、タッチの開始(以下、タッチダウン(Touch-Down)と称する)。
・タッチパネル70aを指やペンでタッチしている状態であること(以下、タッチオン(Touch-On)と称する)。
・指やペンがタッチパネル70aをタッチしたまま移動していること(以下、タッチムーブ(Touch-Move)と称する)。
・タッチパネル70aへタッチしていた指やペンをタッチパネル70aから離したこと。すなわち、タッチの終了(以下、タッチアップ(Touch-Up)と称する)。
・タッチパネル70aに何もタッチしていない状態(以下、タッチオフ(Touch-Off)と称する)。
タッチダウンが検知されると、同時にタッチオンも検知される。タッチダウンの後、タッチアップが検知されない限りは、通常はタッチオンが検知され続ける。タッチムーブが検知されるのもタッチオンが検知されている状態である。タッチオンが検知されていても、タッチ位置が移動していなければタッチムーブは検知されない。タッチしていた全ての指やペンがタッチアップしたことが検知された後は、タッチオフとなる。
これらの操作・状態や、タッチパネル70a上に指やペンがタッチしている位置座標は内部バスを通じてシステム制御部50に通知され、システム制御部50は通知された情報に基づいてタッチパネル70a上にどのような操作が行われたかを判定する。タッチムーブについてはタッチパネル70a上で移動する指やペンの移動方向についても、位置座標の変化に基づいて、タッチパネル70a上の垂直成分・水平成分毎に判定できる。またタッチパネル70a上をタッチダウンから一定のタッチムーブを経てタッチアップをしたとき、ストロークを描いたこととする。素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネル70a上に指をタッチしたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル70a上を指ではじくように素早くなぞる操作である。所定距離以上を、所定速度以上でタッチムーブしたことが検知され、そのままタッチアップが検知されるとフリックが行われたと判定できる。また、所定距離以上を、所定速度未満でタッチムーブしたことが検知された場合はドラッグが行われたと判定するものとする。タッチパネル70aは、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサー方式等、様々な方式のタッチパネルのうちいずれの方式のものを用いてもよい。タッチパネルに対する接触があったことでタッチがあったと検知する方式や、タッチパネルに対する指やペンの接近があったことでタッチがあったと検知する方式があるが、いずれの方式でもよい。
システム制御部50は、AF-ONボタン1,2からの通知(出力情報)により、AF-ONボタン1,2へのタッチ操作や押し込み操作を検知できる。システム制御部50は、AF-ONボタン1,2の出力情報に基づいて、AF-ONボタン1,2上における指などの動きの方向(以降、移動方向と称する)を、上、下、左、右、左上、左下、右上、右下の8方向で算出する。さらに、システム制御部50は、AF-ONボタン1,2の出力情報に基づいて、x軸方向、y軸方向の2次元方向でAF-ONボタン1,2上における指などの動きの量(以降、移動量(x,y)と称する)を算出する。システム制御部50は、さらにAF-ONボタン1,2への以下の操作、あるいは状態を検知できる。システム制御部50は、AF-ONボタン1とAF-ONボタン2のそれぞれについて個別に、移動方向や移動量(x,y)を算出したり、以下の操作・状態を検知したりする。
・AF-ONボタン1、またはAF-ONボタン2にタッチしていなかった指などが新たにAF-ONボタン1、またはAF-ONボタン2にタッチしたこと。すなわち、タッチの開始(以下、タッチダウン(Touch-Down)と称する)。
・AF-ONボタン1、またはAF-ONボタン2を指などでタッチしている状態であること(以下、タッチオン(Touch-On)と称する)。
・指などがAF-ONボタン1、またはAF-ONボタン2をタッチしたまま移動していること(以下、タッチムーブ(Touch-Move)と称する)。
・AF-ONボタン1、またはAF-ONボタン2へタッチしていた指をAF-ONボタン1、またはAF-ONボタン2から離したこと。すなわち、タッチの終了(以下、タッチアップ(Touch-Up)と称する)。
・AF-ONボタン1、またはAF-ONボタン2に何もタッチしていない状態(以下、タッチオフ(Touch-Off)と称する)。
タッチダウンが検知されると、同時にタッチオンも検知される。タッチダウンの後、タッチアップが検知されない限りは、通常はタッチオンが検知され続ける。タッチムーブが検知されるのもタッチオンが検知されている状態である。タッチオンが検知されていても、移動量(x,y)が0であれば、タッチムーブは検知されない。タッチしていた全ての指などがタッチアップしたことが検知された後は、タッチオフとなる。
システム制御部50は、これらの操作・状態や移動方向、移動量(x,y)に基づいてAF-ONボタン1,2上にどのような操作(タッチ操作)が行われたかを判定する。タッチムーブについては、AF-ONボタン1,2上での指などの移動として、上、下、左、右、左上、左下、右上、右下の8方向、またはx軸方向、y軸方向の2次元方向の移動を検知する。システム制御部50は、8方向のいずれかの方向への移動、またはx軸方向、y軸方向の2次元方向の片方もしくは両方への移動が検知された場合は、スライド操作が行われたと判定するものとする。本実施形態では、AF-ONボタン1,2は、赤外線方式のタッチセンサーであるものとする。ただし、抵抗膜方式、表面弾性波方式、静電容量方式、電磁誘導方式、画像認識方式、光センサー方式等、別の方式のタッチセンサーであってもよい。
図3(a)、図3(b)を用いて、AF-ONボタン1の構造について説明する。AF-ONボタン2の構造はAF-ONボタン1の構造と同様のため、その説明は省略する。
カバー310はAF-ONボタン1の外装カバーである。窓311はAF-ONボタン1の外装カバーの一部であり、投光部312から投光された光を透過する。カバー310は、カメラ100の外装カバー301よりも外に突起しており、押し込み可能となっている。投光部312は、窓311に向かう光を照射する発光ダイオードなどの発光デバイスである。投光部312から発せられる光は、可視光ではない光(赤外線)などが望ましい。窓311の表面(AF-ONボタン1の操作面)に指300がタッチしている場合には、投光部312から照射された光が、タッチしている指300の表面に反射し、反射光が受光部313によって受光(撮像)される。受光部313は、撮像センサーである。受光部313で撮像された画像に基づき、AF-ONボタン1の操作面に操作体(指300)が触れていない状態であるか、操作体がタッチしたか、タッチしている操作体がタッチしたまま移動しているか(スライド操作しているか)等を検知することができる。カバー310は弾性部材314で接地面316に設置されており、指300が窓311の表面を押し、カバー310が押し込まれることで、押し込み検知のためのスイッチ315にカバー310が触れる。これによってAF-ONボタン1が押し込まれたことが検知される。
顔検出機能について説明する。システム制御部50は顔検出の対象の画像を画像処理部24に送る。システム制御部50の制御下で画像処理部24は、当該画像データに水平方向バンドパスフィルタを作用させる。また、システム制御部50の制御下で画像処理部24は処理された画像データに垂直方向バンドパスフィルタを作用させる。これら水平及び垂直方向のバンドパスフィルタにより、画像データよりエッジ成分が検出される。
その後、システム制御部50は、検出されたエッジ成分に関してパターンマッチングを行い、目及び鼻、口、耳の候補群を抽出する。そして、システム制御部50は、抽出された目の候補群の中から、予め設定された条件(例えば2つの目の距離、傾き等)を満たすものを、目の対と判断し、目の対があるもののみ目の候補群として絞り込む。そして、システム制御部50は、絞り込まれた目の候補群とそれに対応する顔を形成する他のパーツ(鼻、口、耳)を対応付け、また、予め設定した非顔条件フィルタを通すことで、顔を検出する。システム制御部50は、顔の検出結果に応じて上記顔情報を出力し、処理を終了する。このとき、顔の数などの特徴量をシステムメモリ52に記憶する。
以上のようにLV画像あるいは再生表示される画像を画像解析して、画像の特徴量を抽出して被写体情報を検出する(特定の被写体を検出する被写体検出を行う)ことが可能である。本実施形態では特定の被写体として顔を例に挙げたが、瞳、手、胴体、特定の個人、動体、文字、など、他の被写体も検出し、AF等の対象として選択することが可能である。
図3(a)は、AF-ONボタン1の操作面に指300がタッチしているが、AF-ONボタン1を押し込んでいない状態の概略図である。図3(b)は、AF-ONボタン1の操作面を指300が押圧することで、AF-ONボタン1が押し込まれ、AF-ONボタン1が押されたことが検知される状態の概略図である。図3(b)の押し込まれた状態から、指300をAF-ONボタン1の操作面から離せば、弾性部材314の力によってAF-ONボタン1はスイッチ315に触れない図3(a)の状態に戻る。なお、弾性部材314を接地面316に設置する例を説明したが、接地面316ではなく、外装カバー301に設置してもよい。また、AF-ONボタン1は、操作面への押し込みと、操作面でのタッチ操作とを検知可能なものであれば、図3(a)、図3(b)に示した構造に限るものではなく、他の構造としてもよい。
OVFモードにて選択可能なAF枠について説明する。OVFモードでは、AF枠の選択モード(測距エリア選択モード)として、少なくとも以下の選択モードを含む複数の選択モードのうちいずれかを設定メニューより予めユーザーが選択して設定することができる。
・1点AF(任意選択)…191点の測距点(焦点調節領域)の中から、ピント合わせ(AF)に使う測距点をユーザーが1点選択する選択モード。後述するゾーンAFよりも狭い範囲が焦点調節領域となる。
・ゾーンAF(ゾーン任意選択)…複数の測距点を9つの測距ゾーン(焦点調節領域)に分類し、いずれかの測距ゾーンをユーザーが選択する選択モード。選択したゾーンに含まれる全ての測距点を用いて自動選択AFを行う。自動選択AFでは、対象となる測距点で測距された被写体のうち、自動的にピントを合わせるべき被写体と判定された被写体にピントが合うようにAFを行う。基本的には最も近距離にある被写体にピントが合うようにAFを行うが、画面上の位置や被写体のサイズ、被写体距離などの条件が加味されることもある。1点AFよりも被写体を捉えやすく、動きのある被写体を撮影するときにピントを合わせやすくなる。また、ピントを合わせるゾーンを絞っているため、構図における意図しない位置の被写体にピントが合ってしまうことも防止することができる。
・自動選択AF…全ての測距点を用いて上述の自動選択AFを行うモード。ユーザーがAFエリアを選択することなく、AFに用いる測距点は全測距点の中から自動的に決定される。
図4(a)、図4(b)を用いて、1点AFで選択可能な測距点について説明する。図4(a)は、ファインダー内表示部41における選択可能な測距点と、選択された測距点の表示例である。ユーザーは、測距点群410のうちいずれか1点を選択することが可能である。選択された測距点はAF枠400として表示される。AF枠400は、実際には被写体の光学像と重畳して視認される。測距点群410のうち、選択されていない測距点は表示されないものとしてもよい。焦点検出部11は、測距点群410に含まれる測距点の各位置に対応する位置で焦点検出及びAFが可能である。測距点群410は、左側測距点群411、中央測距点群412、右側測距点群413に分類される。左側測距点群411と右側測距点群413にはそれぞれ、63点の測距点が9行7列の行列に配置されている。中央測距点群412には、65点の測距点が13行5列の行列に配置されている。1点AFでは、左側測距点群411、中央測距点群412、右側測距点群413に含まれる合計191点の測距点を選択候補として、いずれか1点をAFに用いるAF枠として選択することが可能である。図4(a)は、中央測距点群412に含まれる7行目3列目の測距点(中央の測距点)をAF枠400として選択した表示例である。図4(b)は、中央測距点群412に含まれる6行目4列目の測距点(中央の測距点)をAF枠400として選択した表示例である。図4(a)の状態からAF枠400を右に1回(後述の選択位置移動量=1を1回と称する)、上に1回移動させることで、図4(b)の状態とすることができる。また、図4(a)の状態からAF枠400を右上に1回移動させることでも図4(b)の状態とすることができる。
図5(a)~図5(i)を用いて、ゾーンAFで選択可能な測距ゾーンについて説明する。図4(a)、図4(b)と同じものは同じ符号を用いて示している。ゾーンAFでは、図5(a)~図5(i)にそれぞれ示す9つの測距ゾーンを選択候補として、1つのゾーンを選択することが可能である。図5(a)は、測距点群410のうち、中央の測距ゾーン(中央測距点群412に含まれる4~10行目、1~5列目の測距点群を含むゾーン)を選択してゾーンAF枠500を表示した例である。
図5(b)は、図5(a)の状態からゾーンAF枠500を上に1回移動させて、測距点群410のうち、上部の測距ゾーン(中央測距点群412に含まれる1~7行目、1~5列目の測距点群を含むゾーン)を選択した例である。同様に、図5(c)は、図5(a)の状態からゾーンAF枠500を下に1回移動させて下部の測距ゾーンを選択した例である。図5(d)は、図5(a)の状態からゾーンAF枠500を左に1回移動させて左部の測距ゾーンを選択した例である。図5(e)は、図5(a)の状態からゾーンAF枠500を左上に1回移動させて、あるいは左に1回と上に1回移動させて左上部の測距ゾーンを選択した例である。図5(f)は、図5(a)の状態からゾーンAF枠500を左下に1回移動させて、あるいは左に1回と下に1回移動させて左下部の測距ゾーンを選択した例である。図5(g)は、図5(a)の状態からゾーンAF枠500を右に1回移動させて右部の測距ゾーンを選択した例である。図5(h)は、図5(a)の状態からゾーンAF枠500を右上に1回移動させて、あるいは右に1回と上に1回移動させて右上部の測距ゾーンを選択した例である。図5(i)は、図5(a)の状態からゾーンAF枠500を右下に1回移動させて、あるいは右に1回と下に1回移動させて右下部の測距ゾーンを選択した例である。
LVモードにて選択可能なAF枠について説明する。LVモードでは、AF枠の選択モード(測距エリア選択モード、AF方式)として、少なくとも以下の選択モードを含む複数の選択モードのうちいずれかを設定メニューより予めユーザーが選択して設定することができる。なお、動画の撮影待機状態(動画撮影モード)、動画の記録中も、LVモードであるものとする。
・顔+追尾優先AF(顔+追尾AF)…LV画像から顔が検知されている場合には顔をAF対象として自動的に追尾してAFし、顔検知されていない場合には自動選択AFでAF位置を決定してAFを行う選択モード。LV画像から複数の顔が検知されている場合には、最初は自動選択で決定された顔にAF枠(顔追尾枠)が表示され、8方向キー74a,74bやAF-ONボタンへの左右操作で、右または左側の顔に追尾対象を切り替えることができる。また、表示部28にタッチすることで、顔または顔以外の被写体(モノ)を選択して追尾対象とし、追尾してAFを合わせることもできる。
・ライブ1点AF(任意選択)…65行87列に配置された5655点の測距点の中から、ピント合わせ(AF)に使う測距点をユーザーが1点選択する選択モード。選択された測距点について、撮像面位相差AF、あるいはコントラストAFにて焦点検出、AFが行われる。
図6(a)を用いて、ライブ1点AFでのAF枠の移動について説明する。図6(a)は、LVモードでライブ1点AFに設定している場合の表示部28における表示例である。LV画像601に重畳して各種設定情報やタッチアイコン、AF枠600が表示される。AF枠600は、LV画像上での選択位置を示すインジケーターであり、8方向キー74a,74bでの方向指示操作、AF-ONボタンへのスライド操作に応じて移動可能である。これらの操作部材への操作のx方向、y方向の成分毎の操作量に所定の係数を掛けた分だけ、移動前のAF枠600の位置から相対的に移動し、例えばAF枠600´の位置に移動する。
図6(b)を用いて、顔+追尾AFでのAF枠の移動について説明する。図6(b)は、LVモードで顔+追尾AFに設定しており、かつ、LV画像から複数の顔が検出されていて、1つの顔を追尾している場合の表示部28における表示例である。LV画像601に重畳して各種設定情報やタッチアイコン、AF枠610(ここでは、顔枠、追尾枠、顔追尾枠でもある)が表示される。LV画像601からは、顔621、顔622、顔623の3つの顔が検出されており、図示の例では顔621がAF対象として選択されて追尾されている。AF枠610は8方向キー74a,74bでの左右への方向指示操作、AF-ONボタンへの左右方向へのスライド操作に応じて、検出されている他の顔に移動可能である。例えば、AF-ONボタンに対する右方向へのスライド操作による移動量1(最小単位の移動量)の移動指示に応じて、選択変更前の現在選択中の顔621の右側にある顔のうち、選択中の顔に最も近い顔、すなわち顔622にAF枠を移動させることができる。顔622にAF枠を移動させると、AF枠610が非表示となりAF枠610´が表示される。この時、選択変更前の顔621から顔622へ、顔以外の位置を経由することなくAF枠が移動する。選択を切り替えるAF-ONボタンに対する左右方向へのスライド操作による顔の選択の変更についての詳細は後述する。
図7に、AF-ONボタンに対するスライド応答処理のフローチャートを示す。スライド応答処理は、AF-ONボタンを押し込むことなく操作面にタッチしてタッチムーブするスライド操作に応じた機能(例:AF枠の移動)の実行処理である。この処理は、不揮発性メモリ56に記録されたプログラムをシステムメモリ52に展開し、システム制御部50が実行することで実現する。カメラ100を撮影モードで起動すると図7の処理を開始する。なお、カメラ100を撮影モードで起動した場合には、他の処理(例えば操作部70に含まれる他の操作部材の操作に応じた処理、AF-ONボタンの押し込みに応じた処理)も並行して行われるが、それらの説明は省略する。また、図7~図10では、AF-ONボタン1に対するスライド操作への応答処理を説明するが、AF-ONボタン2についても同様に処理される。ただし、AF-ONボタン1に対するタッチオンが検知されている場合にはAF-ONボタン2に対するスライド応答処理は行わないものとする。これによって、AF-ONボタン1とAF-ONボタン2への操作の競合による誤動作を防止することができる(AF-ONボタン1へのスライド操作が優先される)。
S701では、システム制御部50は、AF-ONボタン1に対するタッチダウンがあったか否かを判定する。タッチダウンがあった場合にはS703に進み、そうでない場合にはS702に進む。本実施形態では、ここでタッチダウンがあったと判定された後の処理は、AF-ONボタン1の押し込みは検知されていない状態で行われる処理であるものとする。
S702では、スライド応答処理の終了条件(例えば電源オフ、再生モードへの移行など)が満たされたか否かを判定する。終了条件が満たされた場合にはスライド応答処理を終了し、そうでない場合はS701に進んで処理を繰り返す。
S703では、システム制御部50は、スライド操作に関する各種変数を初期化する。例えば、内部変数Nを0で初期化する。このNはサンプリング回数を示し、移動量を平均する際に用いる。Nが5に達するごとに、5回のサンプリングで得た移動量(タッチムーブ量、スライド量)を平均化した移動量を取得する。また、S703で、システム制御部50は、変数iを0に初期化する。このiは、タッチされてからの平均化した移動量の取得回数を示す。また、システム制御部50は、変数Dsumを0に初期化する。Dsumは1回のスライド操作における移動距離(操作量)の1回以上の取得期間(後述の50msec)での積算値であり、方向成分をもつ2次元座標値である。Dsumは、後述するように、タッチアップがされる前(すなわちタッチ中)であっても初期化されることがある変数である(すなわち、タッチダウンしてからのタッチの移動距離の全積算量を示しているとは限らない)。
S704では、システム制御部50は、AF-ONボタン1からの移動量の検出値の読み出し前のWait処理を行う。Wait期間は10msec(10ミリ秒)であるものとする。
S705では、システム制御部50は、AF-ONボタン1から、X方向(横方向)の移動量の検出値(単位が距離ではないカウント値)Cxを取得する。同様に、S706では、システム制御部50は、AF-ONボタン1から、Y方向(縦方向)の移動量の検出値(単位が距離ではないカウント値)Cyを取得する。
S707では、システム制御部50は、S705で取得したX方向のカウント値Cxを配列CxnのN番目Cxn[N]に格納する。S708では、システム制御部50は、S706で取得したY方向のカウント値Cyを配列CynのN番目Cyn[N]に格納する。
S709では、システム制御部50は、サンプリング回数を表す変数Nをインクリメントする。
S710では、システム制御部50は、AF-ONボタン1からのタッチアップがあったか否かを判定する。AF-ONボタン1からのタッチアップがあった場合はS716に進み、そうでない場合、すなわち、AF-ONボタン1へのタッチが継続している場合にはS711へ進む。
S711では、システム制御部50は、変数Nが5であるか否か、すなわち、サンプリング回数が5回に達したかどうかを判定する。N=5になった場合とは、初回であればタッチダウンがあってから50msecが経過した時点、初回より後であれば平均化した移動量を前回取得してから50msecが経過した時点である。本実施形態では、S704でのWait時間が10msecであることと、AF-ONボタン1へのスライド操作に対するAF枠の移動がユーザーに認識できるほど遅延する、すなわち応答性が悪いと体感されることは望ましくないこととから、N=5としている。つまり、平均化した距離の取得頻度を50msec毎としている。
S712では、システム制御部50は、Cxn[0]~Cxn[N-1]までのカウント値の平均値(Cxave)と、Cyn[0]~Cyn[N-1]までのカウント値の平均値(Cyave)を算出する。
S713では、システム制御部50は、直近5回のAF-ONボタン1からの出力値の平均カウント値CxaveとCyaveを、単位μm(マイクロメートル)の距離XaveとYaveに換算する。具体的には、CxaveとCyaveにそれぞれ所定の計数を掛けてXaveとYave[μm]とする。このように、平均化してから距離に換算することで、ノイズの影響などによって、実際の指の移動量に対してAF枠の移動量が極端に不自然な移動量となってしまうことを防止している。また、S713で、システム制御部50は、変数iをインクリメントする。
S714では、システム制御部50は、移動判定処理を行う。移動判定処理については図8を用いて後述する。
S715では、システム制御部50は、変数Nを0に初期化し、その後S704に進み、平均化した移動量の次の取得回のためのサンプリングを行う。
S716では、システム制御部50は、S712と同様の処理を実施する。S712と異なる点は、Nが5であるとは限らない点である。S716では、S712と異なり、平均化した移動量の取得間隔である変数N×10msecは50msecより短いことがある。
S717では、システム制御部50は、S713と同様にCxaveとCyaveをXaveとYave[μm]に換算し、iをインクリメントする。
S718では、システム制御部50は、S714と同様に移動判定処理を行う。移動判定処理については図8を用いて後述する。
図8に、移動判定処理のフローチャートを示す。この処理は、前述の図7のS714、S718の処理の詳細である。また、この処理は、不揮発性メモリ56に記録されたプログラムをシステムメモリ52に展開し、システム制御部50が実行することで実現する。
S801では、システム制御部50は、前述の図7のS713またはS717で算出した(Xave,Yave)[μm]を変数diに代入する。変数diは、今回の取得回分(タッチアップされていない場合、直近50msec)のスライド操作の、方向成分をもつ移動量である。
S802では、システム制御部50は、現在の動作モードがOVFモードであるか否かを判定する。OVFモードである場合はS803に進み、そうでない場合はS820に進む。
S803では、システム制御部50は、移動量の積算値Dsum(方向成分をもつ2次元座標値)に、S801で代入された移動量diを加算する。
S804では、システム制御部50は、測距エリア選択モードが1点AFに設定されているか否かを判定する。1点AFに設定されている場合にはS805に進み、そうでない場合にはS811に進む。
S805では、システム制御部50は、今回の取得回分(タッチアップされていない場合、直近50msec)のスライド操作の、移動速度(操作速度)を算出する。具体的には、移動速度Vdi=|di|/50[msec]として算出する。|di|=√(Xave2+Yave2)である。なお、|di|自体が一定時間(50msec)毎の移動量であるため移動速度に比例する。そのため、時間(50msec)で除算せず、後述するS806での閾値との比較を、|di|と閾値(|di|との比較用の閾値)との比較の処理としてもよい。
S806では、システム制御部50は、今回の取得回分のスライド操作の移動速度Vdiが閾値TH_Vを超えているか否かを判定する。移動速度Vdiが閾値TH_Vを超えている(所定速度よりも速い)場合にはS807に進み、そうでない場合(移動速度Vdiが閾値TH_V以下である場合)はS808に進む。
S807では、システム制御部50は、S809で後述する判定用楕円に関するパラメータを以下のように設定する。
Thx=Thx1
Thy=Thy1
(Thy1<Thx1)
Thx1とThy1は予め不揮発性メモリ56に記録されていた値であり、Thx1>Thy1の関係を満たす。この関係を満たすように設定しているのは、後述する通り、横方向への指の移動よりも縦方向への指の移動の方が行いにくいことを考慮し、縦方向の方が横方向に比べて短い移動量でAF枠の移動を開始できるようにするためである。ThxとThyは条件によって異なる変数であるが、何れの場合でも、Thxは原点を中心とする判定用楕円の横幅を定義する値であり、Thyは原点を中心とする判定用楕円の縦幅を定義する値である。本実施形態では、何れの場合もThx>Thyを満たすため、判定用楕円の横幅=長軸=2Thxとなり、判定用楕円の縦幅=短軸=2Thyとなる。
S808では、システム制御部50は、S809で後述する判定用楕円に関するパラメータを以下のように設定する。
Thx=Thx2
Thy=Thy2
(Thy2<Thx2)
(Thx1<Thx2、Thy1<Thy2)
Thx2とThy2は予め不揮発性メモリ56に記録されていた値であり、Thy2<Thx2の関係を満たす。この関係を満たすように設定しているのは、後述する通り、横方向への指の移動よりも縦方向への指の移動の方が行いにくいことを考慮し、縦方向の方が横方向に比べて短い移動量でAF枠の移動を開始できるようにするためである。
また、Thx1<Thx2、Thy1<Thy2の関係を満たす。すなわち、(Thx1、Thy1)で定義される楕円よりも、(Thx2、Thx2)で定義される楕円の方が大きい。これによって、(Thx1、Thy1)で定義される小さい楕円を用いた判定よりも、(Thx2、Thx2)で定義される大きい楕円を用いた判定の方が、AF枠の移動を開始するまでに長い移動距離を要する。本実施形態では、指の移動速度が遅い場合に大きい楕円を用いた判定を行うため、指の移動速度が速い場合に比べてAF枠の移動を開始するまでに、あえて長い移動距離を要するようにする。これによって、ユーザーが指をゆっくり移動させて慎重にAF枠を移動させようとしている場合に、AF枠の移動が頻度高く起こり過ぎる、あるいはAF枠が大きい距離移動し過ぎるといったことを防止し、AF枠の位置を微調整することができる。言い換えれば、確実な一つずつ(1移動量毎)の移動を実現する。
S809では、システム制御部50は、移動量の積算値Dsum(Xaveの積算値DsumxとYaveの積算値Dsumy)が、AF枠の移動可否の判定用楕円の縁または外に達したか否かを判定する。判定用楕円は以下の式1によって定義される楕円である。
Dsumx2/Thx+Dsumy2/Thy=1…式1
すなわち、S809では、システム制御部50は、以下の式2を満たしたか否かを判定する。
Dsumx2/Thx+Dsumy2/Thy≧1…式2
式2を満たしたと判定した場合は、S810に進む。式2を満たしていない場合、すなわち、移動量の積算値Dsumが、AF枠の移動可否の判定用楕円の内側である場合には、AF枠の移動(選択位置の移動)は行わず、移動判定処理を終了する。
S810では、システム制御部50は、選択位置移動処理1(AF枠の移動処理)を行う。選択位置移動処理1については図10(a)を用いて後述する。
S809の判定によれば、移動方向が真横であった場合にはAF枠を移動するか否かの閾値はThxとなり、指の移動量がThx以上となった場合に真横(操作方向と平行)にAF枠が移動され、指の移動量がThx以下であった場合にはAF枠は移動されない。また、移動方向が真上であった場合にはAF枠を移動するか否かの閾値はThyとなり、指の移動量がThy以上となった場合に真上(操作方向と平行)にAF枠が移動され、指の移動量がThy以下であった場合にはAF枠は移動されない。
S811では、システム制御部50は、測距エリア選択モードがゾーンAFに設定されているか否かを判定する。ゾーンAFに設定されている場合にはS812に進み、そうでない場合(例えば自動選択AFに設定されている場合)には移動判定処理を終了する。
S812では、システム制御部50は、S809で後述する判定用楕円に関するパラメータを以下のように設定する。
Thx=Thx3
Thy=Thy3
(Thy3<Thx3)
(Thx1<Thx2<Thx3、Thy1<Thy2<Thy3)
Thx3とThy3は予め不揮発性メモリ56に記録されていた値であり、Thy3<Thx3の関係を満たす。この関係を満たすように設定しているのは、後述する通り、横方向への指の移動よりも縦方向への指の移動の方が行いにくいことを考慮し、縦方向の方が横方向に比べて短い移動量でAF枠の移動を開始できるようにするためである。
また、Thx1<Thx2<Thx3、Thy1<Thy2<Thy3の関係を満たす。すなわち、(Thx1、Thy1)で定義される楕円、及び、(Thx2、Thx2)で定義される楕円よりも、(Thx3、Thy3)で定義される楕円の方が大きい。これによって、(Thx1、Thy1)、(Thx2、Thy2)で定義される小さい楕円を用いた判定よりも、(Thx3、Thx3)で定義される大きい楕円を用いた判定の方が、AF枠の移動を開始するまでにさらに長い移動距離を要する。本実施形態では、測距エリア選択モードがゾーンAFである場合に、(Thx3、Thx3)で定義される大きい楕円を用いた判定を行うため、AF枠の移動を開始するまでに、長い移動距離を要する。ゾーンAFである場合の選択可能位置(選択可能なゾーン)の数(9個)は、1点AFの場合(191個)に比べて少ない。また、ゾーンAFを端から端まで移動させても、移動量は最大で移動量2単位分である(例えば図5(d)の左端部のゾーンから図5(g)の右端部のゾーンへ移動する場合)。従ってゾーンAFにおいて選択位置をすばやくたくさん移動させたいという需要は小さい。一方で、選択位置の移動が、短い指の移動量で頻度高く起こり過ぎると、ユーザーが狙った選択位置(ゾーン)を選択し難くなるという課題が大きい。そこで本実施形態では、ゾーンAFのように選択可能位置が少ない場合に、選択位置の移動を開始するまでに、さらに長い移動距離を要するようにすることで、選択位置の微調整を行いやすくしている。言い換えれば、確実な一つずつ(1移動量毎)の移動を実現する。
なお、ゾーンAFでのAF枠の移動量1(1回)あたりの移動量(移動距離)は、選択しているAF枠によって異なり、一定ではない。例えば、図5(a)の状態から左に1回移動した場合には図5(d)のようにファインダー内表示部41において測距点7個分の距離を移動する。一方、図5(a)の状態から上に1回移動した場合には図5(b)のようにファインダー内表示部41において測距点3個分の距離を移動する。従って、Thx2とThx3の関係と、Thx2を用いるケースの単位移動量D2(測距点1つ分)とThx3を用いるケースの単位移動量D3(ゾーンAFでは不定)の関係とは比例しない。すなわち、Thx2:Thx3≠D2:D3である。Thy2:Thy3についても同様である。
S820では、システム制御部50は、現在の動作モードがLVモードであるか否かを判定する。LVモードである場合はS821に進み、そうでない場合はS824に進む。
S821では、システム制御部50は、AF方式(AF枠の選択モード)が顔+追尾AFに設定されているか否かを判定する。顔+追尾AFに設定されている場合はS823に進み、そうでない場合(例えば図6(a)に示したライブ1点AFに設定されている場合)にはS822に進む
S822では、システム制御部50は、選択位置移動処理2(AF枠の移動処理)を行う。選択位置移動処理2については図10(b)を用いて後述する。
S823では、システム制御部50は、LVから検出された顔を選択した状態(例えば図6(b)に示す状態)であるか否かを判定する。顔を選択した状態でないと判定した場合にはS822に進む。S823で顔を選択した状態であると判定するとS805に進む。ただしこの場合のS805~S810の処理では、diのうちy成分は無視して、x成分(左右方向への移動成分)のみを用いて処理を行う。顔の選択の移動(変更)において、1つ隣の顔は近い距離である場合(集合写真など)もあれば、遠い距離である場合(図6(b)のような場合)もある。従って、スライド操作の移動量に比例した距離にある顔を選択するというアルゴリズムとすると、1つ隣の顔を選択するためのスライド操作の操作量が、顔と顔の距離に応じて変わってしまい、一定の操作感とならない。そこで本実施形態では、顔の選択状態においては、操作量の積算値Dsumが判定用楕円を超えるたびに選択位置を1つずつ移動するS805~S810の処理を行う。これによって、1つ隣の顔を選択するためのスライド操作の操作量が顔と顔の距離にかかわらずある程度一定の量となり、ユーザーの操作感を向上させることができる。なおこの場合でも、スライド操作の移動速度に応じて異なる大きさの判定用楕円と比較する処理は行うので、ゆっくり移動させるスライド操作での微調整も行いやすい。ただしこれに限るものではなく、顔の選択状態においては、スライド操作の移動速度にかかわらず同じ大きさの判定用楕円と比較する処理としてもよい。
S824では、システム制御部50は、その他の動作モードにおけるAF-ONボタン1に対するスライド操作に応じた処理を行う。例えば、メニュー画面における選択カーソル移動操作などであるが、本実施形態では説明を省略する。
図9(a)~図9(c)に、1点AFでAF-ONボタン1または2に対する1回のタッチ操作(タッチダウンからタッチアップまでの操作)が行われた場合の動作例を示す。なお図9(a)~図9(c)で説明する各タッチ位置は仮想平面上でのタッチ位置であり、AF-ONボタン1または2でタッチを検知し始めた時点を位置P0とした、AF-ONボタン1または2で検知された指の移動量に基づく相対的なタッチ位置である。
図9(a)では、位置P0から位置P2までのスライド操作(移動速度>閾値TH_V)が行われる。操作開始から50msec経過するまでに、タッチ位置は、移動量d1で位置P0から位置P1に移動し、位置P0を中心とする判定用楕円e1の外に出る。このため、50msec経過の時点で、選択位置移動処理1が行われ、AF枠が移動量1で、角度θ1によって決まる方向へ移動する。詳細は後述するが、このとき、選択位置移動処理1により、移動量diの積算値Dsumが0にリセットされ、判定用楕円の中心位置が位置P1にリセットされる(積算値Dsumや判定用楕円の座標系が再設定される)。
同様に、図9(a)では、50msec経過時点から100msec経過時点までの50msec期間に、タッチ位置は、移動量d2で位置P1から位置P2に移動し、位置P1を中心とする判定用楕円e1の外に出る。このため、100msec経過の時点でもAF枠が移動量1で、角度θ2によって決まる方向へ移動する。このときも、積算値Dsumが0にリセットされ、判定用楕円の中心位置が位置P2にリセットされる(積算値Dsumや判定用楕円の座標系が再設定される)。
図9(b)では、位置P0から位置P4までのスライド操作(移動速度>閾値TH_V)が行われる。操作開始から50msec経過するまでに、タッチ位置は、移動量d1で位置P0から位置P1に移動する。図9(b)の移動量d1は図9(a)の移動量d1と等しいが、図9(b)では、移動量d1でのタッチ位置の移動方向が図9(a)と異なり、50msec経過の時点でのタッチ位置P1は判定用楕円e1の内側にある。このため、50msec経過の時点では、選択位置移動処理1は行われず、AF枠は移動しない。このように、AF枠を移動する否かを楕円を用いて判断するため、タッチ位置の移動量diが同じであっても、タッチ位置の移動方向によってAF枠が移動したり、移動しなかったりする。また、タッチ位置の移動量の取得期間(50msec)の複数回分に亘る1回のスライド操作(すなわち、100msec以上に亘るスライド操作)で同じスライド距離をスライドさせても、タッチ位置の移動方向によってAF枠の移動量が異なる。例えば、X軸と平行に右に操作量(1回のタッチ操作でのタッチ位置のトータルの移動距離)が距離Mとなるスライド操作が行われた場合には、第1の移動量(例えば3)でAF枠の位置が右方向に移動する。一方、Y軸と平行に上に前述の距離Mと同じ操作量でスライド操作が行われた場合には、第1の移動量よりも大きい第2の移動量(例えば5)でAF枠の位置が上方向に移動する。
そして、図9(b)では、50msec経過時点から100msec経過時点までの50msec期間に、タッチ位置は、移動量d2で位置P1から位置P2に移動し、位置P0を中心とする判定用楕円e1の外に出る。このため、100msec経過の時点で初めて、選択位置移動処理1が行われ、AF枠が移動量1で移動する。AF枠の移動方向は、移動量d1とd2とを積算した積算値Dsumを示す位置P0と位置P2を結ぶ線分(図中破線)と、Y軸との成す角θ1によって決まる。このとき、積算値Dsumが0にリセットされ、判定用楕円の中心位置が位置P2にリセットされる(積算値Dsumや判定用楕円の座標系が再設定される)。
同様に、図9(b)では、150msec経過するまでに、タッチ位置は、移動量d3で位置P2から位置P3に移動するが、位置P2を中心とする判定用楕円e1の外に出ないため、150msec経過の時点ではAF枠は移動しない。そして、200msec経過するまでに、タッチ位置は、移動量d4で位置P3から位置P4に移動し、位置P2を中心とする判定用楕円e1の外に出るため、200msec経過の時点でAF枠が移動量1で移動する。AF枠の移動方向は、移動量d3とd4とを積算した積算値Dsumを示す位置P2と位置P4を結ぶ線分(図中破線)と、Y軸との成す角θ2によって決まる。このとき、積算値Dsumが0にリセットされ、判定用楕円の中心位置が位置P4にリセットされる(積算値Dsumや判定用楕円の座標系が再設定される)。
図9(c)では、位置P0から位置P5までのスライド操作が行われる。操作開始から50msec経過するまでに、タッチ位置は、移動量d1と閾値TH_Vよりも速い移動速度とで位置P0から位置P1に移動する。同様に、50msec経過時点から100msec経過時点までの50msec期間に、タッチ位置は、移動量d2と閾値TH_Vよりも速い移動速度とで位置P1から位置P2に移動する。このため、50msec経過の時点と、100msec経過の時点とでは、図9(a)、図9(b)と同様に、AF枠を移動するか否かがThx=Thx1かつThy=Thy1の判定用楕円e1を用いて判定され、AF枠がそれぞれ移動量1で移動する。
その後、タッチ位置は閾値TH_Vよりも遅い移動速度で移動するため、AF枠を移動するか否かはThx=Thx2かつThy=Thy2の判定用楕円e2を用いて判定される。具体的には、100msec経過時点から150msec経過時点までの期間に、タッチ位置は、移動量d3で位置P2から位置P3に移動するが、位置P2を中心とする判定用楕円e2の外に出ないため、150msec経過の時点ではAF枠は移動しない。同様に、150msec経過時点から200msec経過時点までの50msec期間に、タッチ位置は、移動量d4で位置P3から位置P4に移動するが、位置P2を中心とする判定用楕円e2の外に出ないため、200msec経過の時点ではAF枠は移動しない。そして、200msec経過時点から250msec経過時点までの50msec期間に、タッチ位置は、移動量d5で位置P4から位置P5に移動し、位置P2を中心とする判定用楕円e2の外に出る。このため、250msec経過の時点で、選択位置移動処理1が行われ、AF枠が移動量1で移動する。AF枠の移動方向は、移動量d3~d5が積算された積算値Dsumを示す位置P2と位置P5を結ぶ線分(図中破線)と、Y軸との成す角θ3によって決まる。このとき、積算値Dsumが0にリセットされ、判定用楕円の中心位置が位置P5にリセットされる(積算値Dsumや判定用楕円の座標系が再設定される)。
常に判定用楕円e1を使用すれば、位置P2を中心とする判定用楕円e1の外にタッチ位置(位置P4)が出るため、200msec経過の時点でAF枠が移動する。本実施形態では、移動速度が遅い場合に判定用楕円e1よりも大きい判定用楕円e2を使用することで、このような移動が生じないようにしている。これにより、AF枠の移動応答性を敢えて低下させ、AF枠の微調整を行いやすくしている。
ところで、図9(c)においてタッチ位置は移動量d2によって判定用楕円e1から大きく外に出る(位置P1から位置P2までの距離が位置P1から判定用楕円e1の縁までの距離の2倍以上ある)。しかし、位置P2のタイミングでのAF枠の移動量は移動量1である。このように、選択位置移動処理1によるAF枠の1回の移動量は、移動量diの1回の取得期間(50msec)に指がどんなに移動しても(判定用楕円を超えた先の指の移動量にかかわらず)固定である。すなわち、指の移動量とAF枠の移動量は比例関係にはない。このため、移動量diの1回の取得期間(50msec)内に終わるような素早いスライド操作の度に1つAF枠を移動する(例えば、小刻みに素早く3回スライド操作をするとAF枠が3つ分移動する)といった使用方法が可能となる。その結果、素早く確実にAF枠を1つずつ移動させることができるようになる。AF枠を移動させたい量に応じた回数指をスライドすることを好むユーザーであってもAF枠を一点ずつ移動させることができる。
一方で、移動量diの2回以上の取得期間(100msec以上)に亘る1回のスライド操作で、連続してAF枠を大きく移動させることもできる。ある程度の速度で長くスライド操作すれば、50msec毎にAF枠が1つ移動し、1回のスライド操作で大きくAF枠を移動させることもできる。
なお、図9(c)に示すような速度別閾値は、楕円とは異なる形状で設定してもよい。例えば、スライド操作の移動方向にかかわらず同じ閾値が使用されるように、移動速度ごとに異なる大きさの円で閾値を設定してもよい。
なお、顔+追尾AFで顔を選択した状態の場合にも、1点AFと同様に、判定用楕円e1や判定用楕円e2を用いて、AF枠を移動するか否かが判定される。ゾーンAFの場合には、Thx=Thx3かつThy=Thy3の判定用楕円を用いて、AF枠を移動するか否かが判定される。ゾーンAFの場合には、移動速度による判定用楕円の切り替えは行われない。
図10(a)に、選択位置移動処理1のフローチャートを示す。この処理は、前述の図8のS810の処理の詳細である。また、この処理は、不揮発性メモリ56に記録されたプログラムをシステムメモリ52に展開し、システム制御部50が実行することで実現する。
S1001では、システム制御部50は、移動量の積算値Dsum(方向成分をもつ2次元座標値)のベクトル方向がなす角度θを算出する。図9(a)の場合、操作開始から50msec経過の時点で、移動量d1を積算値Dsumとして、積算値Dsumのなす角度θ1(位置P0から位置P1に向かう方向の、Y方向(縦方向)に対する角度)が算出され、積算値Dsumが0にリセットされる。そして、100msec経過の時点で、移動量d2を積算値Dsumとして、積算値Dsumのなす角度θ2が算出される。図9(b)の場合、50msec経過の時点では選択位置移動処理1は行われず、100msec経過の時点で、移動量d1と移動量d2の和(破線)を積算値Dsumとして、積算値Dsumのなす角度θ1が算出され、積算値Dsumが0にリセットされる。そして、150msec経過の時点では選択位置移動処理1は行われず、200msec経過の時点で、移動量d3と移動量d4の和(破線)を積算値Dsumとして、積算値Dsumのなす角度θ2が算出される。図9(c)の場合も同様に、50msec経過の時点、100msec経過の時点、及び、250msec経過の時点で角度θ1、角度θ2、及び、角度θ3が算出される。
S1002では、システム制御部50は、S1001で算出した角度θに基づいて、AF枠(選択位置)の移動方向を決定する。本実施形態では、以下のように、角度θを、上、下、左、右、左上、左下、右上、右下の8方向のいずれかに変換する。なお、移動方向の候補の数や向きは特に限定されない。
-22.5°(337.5°)<θ≦22.5°…移動方向:上
22.5°<θ≦67.5°…移動方向:右上
67.5°<θ≦112.5°…移動方向:右
112.5°<θ≦157.5°…移動方向:右下
157.5°<θ≦202.5°…移動方向:下
202.5°<θ≦247.5°…移動方向:左下
247.5°<θ≦292.5°…移動方向:左
292.5°<θ≦337.5°…移動方向:左上
S1003では、システム制御部50は、AF枠の移動量として固定値1を設定する。なお、AF枠の移動量は1でなくてもよく、予めユーザーが他の移動量を指定(設定)できてもよい。
S1004では、システム制御部50は、S1002で決定した移動方向(上、下、左、右、左上、左下、右上、右下の8方向のいずれか)に、S1003で設定した移動量1で、AF枠を移動させる。例えば、図4(a)の状態から右上に移動量1でAF枠を移動させると、図4(b)の状態となる。なお、AF枠が測距点群の行または列の端にある場合は、AF枠は端を超える方向には動かない(端で突き当たる)。
S1005では、システム制御部50は、移動量の積算値Dsumを0にリセットする。
図10(b)に、選択位置移動処理2のフローチャートを示す。この処理は、前述の図8のS822の処理の詳細である。また、この処理は、不揮発性メモリ56に記録されたプログラムをシステムメモリ52に展開し、システム制御部50が実行することで実現する。
S1011では、システム制御部50は、移動量di、すなわち移動量(X=Xave,Y=Yave)[μm]を、ライブビュー画像(LV画像)のアスペクト比や大きさを考慮して、ライブビュー画像の座標系の相対移動量(X´,Y´)に変換する。
S1012では、システム制御部50は、AF枠の移動量(X´,Y´)に係数値を乗算することで、AF枠の移動量を決定する。具体的には、S1011で得られた値X´に係数Kxを乗算することで最終的な値X´を決定し、S1011で得られた値Y´に係数Kyを乗算することで最終的な値Y´を決定する。なお、係数値=1とする場合はS1012の処理は行わなくてもよく、また係数値Kx,Kyは実数値であれば、いかなる値でもよい。
S1013では、システム制御部50は、S1012で決定した移動量(X´,Y´)で、AF枠を相対的に移動させる。右上へのスライド操作で、例えば図6(a)で説明したようなAF枠の移動(選択位置の移動)が行われる。
選択位置移動処理2では、スライド操作の移動距離が図8のS809で説明した楕円の閾値を超えなくとも、スライド操作の移動距離に比例してAF枠の移動(選択位置の移動)が行われる。例えば、LVモードにおいて、AF枠の選択モード(指定モード)が、顔が検知されているか否かに関わらないライブ1点AF(任意選択)である場合には、スライド操作に応じて選択位置移動処理2が行われる。従って、ライブ1点AF(任意選択)においては、X軸と平行に右にスライド操作が行われた場合に、スライド操作の移動距離の積算値が楕円の判定閾値(X軸と平行に右なので、距離Thx1)を超えなくても、AF枠の移動(選択位置の移動)が行われる。一方、LVモードにおいて、AF枠の選択モード(指定モード)が、LV画像から検出された顔を選択する顔+追尾優先AFである場合には、顔が検出されて選択されていればS823がYesとなり、S805に進む。そして、S805~S808の処理を行った上で、S809で楕円の判定閾値を超えたと判定した場合に、スライド操作に応じた選択位置移動処理1が行われる。従って、顔+追尾優先AFにおいては、X軸と平行に右にスライド操作が行われた場合に、移動距離の積算値が楕円の判定閾値(X軸と平行に右なのでThx1またはThx2)を超えない限りAF枠の移動は行わず、楕円の判定閾値を超えるとAF枠を移動する。すなわち、選択対象の被写体(顔)を変更する。なお、LVモードにおける検出可能な他の種別の被写体(例えば瞳)を選択可能なAF枠の選択モードにおいて、上述の顔+追尾優先AFと同様の処理を行っても良い。すなわち、S809で楕円の判定閾値を超えたと判定した場合に、スライド操作に応じた選択位置移動処理1を行うようにしても良い。
図11(a)~図11(e)を用いて、AF-ONボタンのスライド操作における課題と、本実施形態の判定に楕円を用いること(縦方向の方が横方向に比べて少ない移動量でAF枠の移動を開始すること)による効果との一例について説明する。
図11(a)は、ユーザーが右手1100で第1グリップ部101を保持し、カメラ100を横位置で構えて、AF-ONボタン1を操作する様子を示す。図11(b)は、ユーザーが右手1100で第2グリップ部102を保持し、カメラ100を縦位置で構えて、AF-ONボタン2を操作する様子を示す。図11(c)は、ユーザーが右手1100で第1グリップ部101を保持し、カメラ100を縦位置で構えて、AF-ONボタン1を操作する様子を示す。図11(a)~11(c)のいずれにおいても、ユーザーは右手1100の親指1101でAF-ONボタンを操作することになる。
図11(d)は、AF-ONボタンへの横スライド操作(横方向のスライド操作、具体的には右へのスライド操作)が行われる様子を示す。状態1141は横スライド操作の開始状態であり、状態1142は横スライド操作中の状態であり、状態1143は横スライド操作の終了状態である。状態1141~1143のように、横スライド操作は、指関節の付け根を支点として弧を描くような操作である。横スライド操作は比較的行いやすく(例えばAF-ONボタンへの接触圧や接触部分を維持しやすく)、横スライド操作では親指1101の大きな移動量が検出されやすい。特にOTPのような指の画像パターンの差分で指の移動を判定するデバイスの場合は、AF-ONボタンへの接触圧や接触部分を維持しやすい横スライド操作中に、人間の指紋の特徴を安定して検出しやすく、横スライド操作を検出しやすい。
図11(e)は、AF-ONボタンへの縦スライド操作(縦方向のスライド操作、具体的には上へのスライド操作)が行われる様子を示す。図11(e)において、上側の図は、背面側(AF-ONボタンの操作面に対して正面側)からAF-ONボタンを見た場合の模式図であり、下側の図は、側面側からAF-ONボタンを見た場合の模式図である。状態1151は縦スライド操作の開始状態であり、状態1152は縦スライド操作中の状態であり、状態1153は縦スライド操作の終了状態である。状態1151~1153のように、縦スライド操作は、指関節を折り曲げたり伸ばしたりするような操作である。縦スライド操作は比較的行いにくく(例えばAF-ONボタンへの接触圧や接触部分を維持しにくく)、縦スライド操作では親指1101の大きな移動量が検出されにくい。特にOTPのような指の画像パターンの差分で指の移動を判定するデバイスの場合は、AF-ONボタンへの接触圧や接触部分を維持しにくい縦スライド操作中に、人間の指紋の特徴を安定して検出しにくく、縦スライド操作を検出しにくい。図11(e)では、親指1101の指先に近い部分がAF-ONボタンに接触して縦スライド操作が開始する(状態1151の側面図)。そして、親指1101の指先から遠ざかるようにAF-ONボタンへの接触部分が変化して縦スライド操作が終了する(状態1152,1153の側面図)。
このため、AF枠の移動開始のための移動量(指の移動量;閾値)を横スライド操作と縦スライド操作で同じとすると、縦スライド操作でAF枠が移動しにくく、ユーザーに縦スライド操作が行いにくいと感じさせてしまう。
そこで本実施形態では、S809で説明したように、横方向に長い楕円を閾値として用い、縦方向の方が横方向に比べて少ない移動量でAF枠の移動が開始し、AF枠を同じ量移動させるのに縦方向の方が横方向に比べて指の移動量が少なく済むようにしている。例えば、図9(a)と図9(b)では同じ移動量2のAF枠の移動がされるが、移動量の縦成分が大きい図9(a)の方が少ない移動量(指の移動距離)でAF枠が2つ分動く。これにより、ユーザーは同等の操作感で様々な方向のスライド操作を行える。なお、縦方向の方が横方向に比べて少ない移動量でAF枠の移動が開始されればよく、本実施形態のような楕円を用いた判定に限るものではない。
なお、本発明の電子機器は、AF-ONボタンを搭載した電子機器に限るものではなく、操作体(指やペン)の移動を検知してインジケーター(選択位置)を移動させる装置であれば本発明を適用可能である。例えば、ノートPCのタッチパッドへタッチした指(操作体)によるスライド操作に応じて、ノートPCのディスプレイに表示されたポインティングカーソルや項目選択カーソルなどのインジケーターを相対的に移動させる場合にも本発明を適用可能である。また、撮像装置において、タッチパネル式の背面ディスプレイに対する指(操作体)のタッチ操作でのスライド操作に応じて、光学ファインダーまたは電子ファインダー内に表示された測距点選択位置を示すインジケーターを移動させる場合にも適用可能である。タッチ操作に限るものではなく、部材を傾けて方向を指示するジョイスティックや、回転ダイヤルなどへの操作に応じてインジケーターを相対的に移動させる場合にも本発明を適用可能である。ウェアラブルデバイスなど少ない操作部材しか搭載できない機器にも本発明を適用可能である。さらに、空間ジェスチャーなどのユーザーの手(操作体)の動きなどを非接触で検知し、この動きに応じて例えばプロジェクタに表示されたインジケーターを移動させるものにも適用可能である。
なお、システム制御部50が行うものとして説明した上述の各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサーや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
また、上述した実施形態においては、本発明を撮像装置に適用した場合を例にして説明したが、これはこの例に限定されず移動操作を検知可能な電子機器であれば適用可能である。例えば、本発明は、パーソナルコンピュータやPDA、携帯電話端末や携帯型の画像ビューワ、プリンタ装置、デジタルフォトフレーム、音楽プレーヤー、ゲーム機、電子ブックリーダーなどに適用可能である。また、本発明は、映像プレーヤー、表示装置(投影装置を含む)、タブレット端末、スマートフォン、AIスピーカー、家電装置や車載装置などに適用可能である。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。