以下、本発明の実施例について、図面を参照しながら説明する。なお、以下に示す実施例はあくまでも一例であって、必ずしも以下に示す実施例に限定されるものではない。
図1は、本発明の実施例1に係る遠隔制御システムの一例を示す図であり、図2は、本発明の実施例1に係る遠隔制御システムの概略構成の一例を示すブロック図である。実施例1に係る遠隔制御システムは、図1及び図2に示すように、制御装置100、接続ケーブル300、撮像装置200を有する。制御装置100と撮像装置200は、接続ケーブル300等の伝送路を介して接続されている。
実施例1では、制御装置100の一例としてPC(Personal Computer)(以下PC)を用いて、撮像装置200の一例としてデジタル一眼レフカメラ(以下カメラ)を用いる。また、実施例1では、接続ケーブル300の一例としてUSB(Universal Serial Bus)規格に準拠したUSBケーブルを用いる。
以下これらについて詳細に説明する。
<USBケーブル300>
USBケーブル300は、双方向でデータを伝送するデータライン、ストローブ信号を転送するストローブ信号ライン及び電源ライン等を有する。
データラインには、PC100に接続したカメラ200を制御するためのプロトコルが用意されている。このプロトコルによってUSB対応のPC100とカメラ200との装置間において、様々なデータの転送やコマンドによる制御を行うことが可能になる。
ストローブ信号ラインは、データを送信する装置側がデータを受信する装置側に、データが出力されていることを示す信号であるストローブ信号を送信するためのラインである。また、データ転送はストローブ信号の立ち上がりと立ち下がりの両方で行う。データを受信する装置は、データラインとストローブ信号ラインによって、伝送されたデータを生成する。
電源ラインは、PC100からカメラ200に対して必要に応じて電力を供給するラインである。
なお、接続ケーブル300は、USBケーブルに限るものではない。画像データ、音声データ及び補助データを伝送するラインを有する接続ケーブルであれば、USBケーブル以外の接続ケーブルであってもよい。また、PC100とカメラ200との通信を行うための接続ケーブル300としてUSBケーブルを使用したが、PC100とカメラ200との通信を無線通信によって行うものであっても良い。
<PC100>
PC100はUSBケーブル300を介して、カメラ200から送信された静止画データや動画データ等の画像(Video)データを表示器に表示させ、カメラ200から送信された音声(audio)データをスピーカから出力させる。また、PC100は、ユーザからの入力に応じてカメラ200を制御するための制御コマンドを生成し、USBケーブル300を介して制御コマンドをカメラ200に送信する。
PC100は、図2に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、表示部104、操作部105を有する。
CPU101は、メモリ102に記憶されている制御プログラムに従って、PC100の動作を制御する。
メモリ102は、CPU101のメインメモリとしても機能し、通信部103から受信したカメラ200からのデータを格納する。また、メモリ102には、PC100の状態をユーザに通知するための複数のアイコン、PC100の動作を制御するための制御プログラム等が記憶されている。また、表示部104に表示するメニュー画面の情報も記憶されている。
通信部103は、USBケーブル300を接続するための端子を有する。通信部103は、USBケーブル300を介してカメラ200から送信された画像データ、音声データ及び補助データを受信することができる。カメラ200から送信された画像データは、メモリ102に格納された後、表示部104に表示される。カメラ200から送信された音声データは、不図示のスピーカ部から出力される。また、カメラ200から送信された補助データは、CPU101に供給される。
表示部104は、液晶ディスプレイ等の表示器により構成される。表示部104は、メモリ102及び通信部103の少なくとも一つから供給された画像データを表示することができる。また、表示部104は、メモリ102に記憶されているメニュー画面を表示することもできる。メニュー画面は、PC100を制御するためのPC制御画面、PC100の設定を変更するためのPC設定画面、または、図3に示すようなカメラ200を制御するためのカメラコントロール画面400等を含む。カメラコントロール画面400の詳細については、後述する。なお、これらのメニュー画面が表示部104に表示されている場合、メニュー画面上にはマウスポインタ(矢印の形状のアイコン)500が表示されている。マウスポインタ500は、メニュー画面上に表示されているボタンやスクロールバー等への入力を行ったり、メニュー画面上を移動したりする。このため、CPU101はメニュー画面におけるマウスポインタ500の位置を把握するため、マウスポインタ500の位置を示すマウスポインタ500の座標情報を取得する。
また、CPU101は表示部104に表示されたカメラコントロール画面400の所定領域に、通信部103から供給された画像データを表示するように表示制御する。
操作部105は、PC100を操作するためのユーザインターフェースである。また、操作部105は、PC100を操作するための操作手段として、マウス105aやタブレット、トラックボール、トラックパッド等のポインティングデバイスやキーボード105bを有する。
これらのポインティングデバイスをユーザが操作することによって、メニュー画面に重畳されたマウスポインタ500をメニュー画面上で移動させて、ボタンやスクロールバー等に対して操作を行い、PC100を制御することができる。例えば、ポインティングデバイスの位置情報に応じてマウスポインタ500の座標は変化し、メニュー画面上におけるマウスポインタ500の位置は移動する。ポインティングデバイスがクリック(押下)されると、マウスポインタ500によって入力が行われ、マウスポインタ500が表示されている領域に対応した処理が実行される。
また、ポインティングデバイスと同様にキーボード105bをユーザが操作することによって、メニュー画面に重畳されたマウスポインタ500をメニュー画面上で移動させて、ボタンやスクロールバー等に対して操作を行い、PC100を制御することもできる。その場合、例えば、マウスポインタ500の位置の移動は、キーボード105bの十字キーを操作することによって行い、マウスポインタ500による入力はキーボード105bのEnterキーを押下することによって行う。
<カメラコントロール画面400>
図3に、メニュー画面の一例としてカメラコントロール画面400を示す。PC100のOSで標準的に採用されているようなウィンドウシステムにおいて、ユーザによってカメラ200を操作するソフトウェアが実行された場合、カメラコントロール画面400が表示部104に表示される。
カメラコントロール画面400はカメラ200を遠隔制御するためのウィンドウで、カメラコントロール画面400内には、ビュー領域401、ステータス表示領域402、パラメータ領域403等がある。CPU101は通信部103でカメラ200から受信したデータをそれぞれビュー領域401、パラメータ領域403に表示するように制御する。
なお、カメラコントロール画面400内において、予め決められた領域の上にマウスポインタ500が重なるように操作されたり、ポインティングデバイスがクリックされたりすると、カメラ200を制御するためのコマンドがCPU101によって生成される。
ビュー領域401は、カメラ200から通信部103が受信した画像データを表示する画像表示領域である。ビュー領域401には、カメラ200から連続的に送信される動画データであるライブビュー画像、またはカメラ200から送信される撮影後の静止画データが表示される。ビュー領域401に表示されているライブビュー画像には、測距枠a〜eが重畳されている。この測距枠の数は、図3に示された測距枠の数に限られない。なお、測距枠a〜eについては後述する。
ユーザはこれらの測距枠a〜eに対してマウスポインタ500による操作を行うことによって、カメラ200に撮影に関する処理を行わせることができる。撮影に関する処理とは、カメラ200のシャッターボタンが半押しされた状態S1であるときにカメラ200が行う撮影準備処理とカメラ200のシャッターボタンが全押しされた状態S2であるときにカメラ200が行う撮影処理との2つの処理である。カメラ200の動作モードが通常の撮影モードである場合、マウスポインタ500が測距枠a〜eのいずれか一つの上に重なると、PC100からカメラ200に対して撮影準備処理の開始を指示する撮影準備コマンドが送信される。PC100から撮影準備コマンドを受信したカメラ200は、マウスポインタ500が重なった測距枠a〜eのいずれか一つの測距枠に囲まれた所定領域に応じて撮影準備処理を実行する。また、カメラ200が撮影モードである場合、マウスポインタ500が測距枠a〜eのいずれか一つの上に重なった状態でポインティングデバイスがクリックされると、PC100からカメラ200に対して撮影処理の開始を指示する撮影コマンドが送信される。PC100から撮影コマンドを受信したカメラ200は、撮影処理を実行する。ただし、マウスポインタ500が測距枠a〜e以外の領域の上にある状態でポインティングデバイスがクリックされたとしても、PC100からカメラ200に対する撮影準備処理及び撮影処理の動作開始の指示は行われない。この場合、カメラ200は撮影準備処理及び撮影処理を実行しない。なお、撮影準備処理と撮影処理については、後述する。なお、通信部103とカメラ200との間でデータ通信が行えない場合やカメラ200から画像データが送信されない場合、ビュー領域401には画像データは表示されないものとする。
ステータス表示領域402は、カメラ200の状態を文字情報で表示する領域であって、図3(a)において、ステータス表示領域402は「撮影可能」と表示されている。それ以外にも、ステータス表示領域402には、図3(b)のように「AF(Auto−Focus)(以下AF)動作中」や「AE(Automatic Exposure)(以下AE)動作中」と表示されたり、「撮影処理中」と表示されたりする。「撮影可能」、「AF動作中」、「AE動作中」及び「撮影処理中」等のカメラ200の状態を示す文字情報はメモリ102に記録されている。CPU101はカメラ200の状態に応じてメモリ102から読み出した文字情報をステータス表示領域402に表示させる。なお、通信部103とカメラ200との間でデータ通信が行えない場合、ステータス表示領域402には、撮影が行えない旨やカメラ200と通信が行えない旨が表示される。
パラメータ領域403は、カメラ200によって撮影が行われる際の設定を示す撮影パラメータを表示する領域で、動作モード、シャッタースピード、絞り値、ホワイトバランス値等が表示されている。これらの値は、カメラ200から受信する補助データに含まれている。なお、パラメータ領域403には、撮影パラメータ以外のカメラ200の設定が表示されても良い。なお、通信部103とカメラ200との間でデータ通信が行えない場合、パラメータ領域403には撮影パラメータは表示されないものとする。
<カメラ200>
カメラ200は、USBケーブル300を介して、画像(video)データ、音声(audio)データ及び補助データをPC100に送信することができる画像ソースである。また、カメラ200は、PC100からUSBケーブル300を介して制御コマンドを受信し、制御コマンドに応じた処理を実行する。
カメラ200は、図2に示すように、CPU201、メモリ202、記録部203、通信部204、操作部205、表示部206、画像処理部207、撮像部208を有する。
カメラ200は、撮影モード、再生モード等の動作モードを有する。カメラ200の動作モードが撮影モードである場合、カメラ200は、被写体の撮影が可能になり、撮影された動画データ、静止画データ等の画像データを記録媒体203aに記録することができる。カメラ200の動作モードが再生モードである場合、ユーザによって選択された画像データを記録媒体203aから再生することができる。
CPU201は、メモリ202に記憶されている制御プログラムに従って、カメラ200の動作を制御する。CPU201は、USBケーブル300を介してPC100に関する情報をPC100から取得してメモリ202に記憶する。なお、CPU201のワークエリアは、メモリ202に限られるものではなく、ハードディスク装置等の外部記憶装置であってもよい。
メモリ202は、CPU101のワークエリアとして機能するメモリであり、CPU201で使用される様々な値、データ及び情報を記憶するメモリでもある。メモリ202に記憶される情報には、カメラ200を制御する制御プログラム、表示部206に表示される所定の画像データやアイコン等がある。
通信部204は、USBケーブル300を接続するための端子を有する。カメラ200の動作モードが撮影モードである場合、撮像部208は、被写体を撮影し、当該被写体の光学像から画像データを生成する。撮像部208によって生成された画像データは、通信部204、画像処理部207及び表示部206に供給される。不図示のマイクロフォン部が生成した音声データも、記録部203及び通信部204に供給される。通信部204は、画像処理部207で生成した画像データと、不図示のマイクロフォン部が生成した音声データと、CPU101で生成された補助データとを、USBケーブル300を介してPC100に送信する。また、通信部204はCPU201によって生成される制御コマンド等をPC100にUSBケーブル300を介して送信する。
また、通信部204は、USBケーブル300を介してPC100から送信されたコマンドを受信する。通信部204は、PC100からコマンドを受信した場合、受信したコマンドをCPU101に供給する。
操作部205は、カメラ200を操作するためのユーザインターフェースであり、カメラ200を操作するための複数のボタンを有する。ユーザからの指示は、操作部205を介してCPU201に入力される。操作部205内の各ボタンは、スイッチ、タッチパネル等により構成される。操作部205は、シャッターボタン、電源ボタン、スタート/ストップボタン、モード変更ボタン、メニューボタン、十字ボタン、SETボタン等を有する。
シャッターボタンは、シャッターボタンが半押しされた状態S1とシャッターボタンが全押しされた状態S2との2つの状態を持つ。カメラ200の動作モードが撮影モードの場合、シャッターボタンが押下され、S1の状態になったときは、操作部205から撮影準備処理を指示する信号がCPU201に入力される。CPU201は画像処理部207及び撮像部208に撮影準備処理の開始を指示する。
カメラ200の動作モードが撮影モードの場合、シャッターボタンが押下され、S2の状態になったときは、操作部205から撮影処理を指示する信号がCPU201に入力される。CPU201は画像処理部207及び撮像部208に一連の撮影処理の動作開始を指示する。
電源ボタンは、カメラ200を電源オン(ON)状態又は電源オフ(OFF)状態に変更することをCPU201に指示するボタンである。電源オン状態とは、不図示の電源(バッテリ、AC電源等)からカメラ200の各部に必要な電力を供給することができる状態である。電源オフ状態とは、不図示の電源(バッテリ、AC電源等)からカメラ200の一部又は全部への電力の供給を停止した状態である。
スタート/ストップボタンは、画像処理部207及び撮像部208によって生成された動画データ等の記録媒体203aへの記録の開始又は一時停止をCPU201に指示するボタンである。
モード変更ボタンは、カメラ200の動作モードを撮影モード、再生モード、バルブ撮影モード、連写撮影モード等のいずれかに変更することをCPU201に指示するボタンである。撮影モードとは、シャッターボタンがS2の状態になった場合、画像処理部207及び撮像部208によって一つの静止画データを生成する撮影モード(単写モード)である。バルブ撮影モードとは、シャッターボタンがS2の状態である間、シャッターを開けたまま長時間の露光を行い、静止画データを生成する撮影モードである。また、連写撮影モードとは、シャッターボタンがS2の状態である間、連続して静止画データを生成する撮影モードである。
メニューボタンは、カメラ200のメニュー画面の表示又は非表示をCPU201に指示するボタンである。カメラ200のメニュー画面は、カメラ200を制御するためのメニュー画面、カメラ200の設定を変更するためのメニュー画面を含む。これらのメニュー画面は、メモリ202に記憶されている。
また、操作部205は、再生ボタン、停止ボタン、一時停止ボタン、早送りボタン、巻き戻しボタン等を有する。これらのボタンは、記録媒体203aに記録された画像データの再生(play)、停止(stop)、一時停止(pause)、早送り(fast forward)及び巻き戻し(rewind)の実行をCPU201に指示するボタンである。
表示部206は、液晶ディスプレイ等により構成される。カメラ200の動作モードが撮影モードである場合、表示部206は、画像処理部207で生成された画像データを表示する。カメラ200の動作モードが再生モードである場合、表示部206は、記録部203が記録媒体203aから再生した画像データを表示する。
画像処理部207は、撮像部208から出力された画像データまたは記録部203によって記録媒体203aから読み出された画像データに対して画素補間処理や色変換処理等の画像処理を行う。画像処理部207は、適応離散コサイン変換(ADCT)等により画像データを圧縮伸長する圧縮伸長回路を備えていて、メモリ202に格納されている画像データを読み込んで、画像データに対して圧縮処理または伸長処理を行う。
また、画像処理部207は、撮像部208から出力される画像データを用いて演算処理を行う。この演算結果に基づいてCPU101は、TTL(スルー・ザ・レンズ)方式のAF処理、AE(Automatic Exposure)(以下AE)処理、フラッシュプリ発光処理、TTL方式のオートホワイトバランス処理を制御する。
撮像部208は、撮像素子、A/D変換部、光学系を備える。光学系とは撮影レンズ群のことであり、撮影の倍率を上げるバリエータレンズや焦点を調整するフォーカシングレンズ、撮影光量を調節する絞り及びそれらの駆動回路等が含まれている。撮像素子は光学系を介して入射した被写体光を電気信号である画像信号に変換する。撮像素子は、例えばCCDイメージセンサーやCMOSセンサーである。A/D変換部は撮像素子から出力される画像信号(アナログデータ)をデジタル動画データ(画像データ)に変換し、通信部204または画像処理部207に出力する。
CPU201によって画像処理部207及び撮像部208が撮影準備処理の開始を指示された場合、CPU201によって撮像部208の撮像素子、A/D変換部、光学系が制御され、AF処理、AE処理が行われる。また、撮影準備処理には、例えばフラッシュプリ発光(Electronic Flash)(以下EF)処理、オートホワイトバランス(Auto White Balance)(以下AWB)処理、防振処理等も含まれる。
AF処理とは、CPU201が撮像部208に含まれるフォーカシングレンズの位置制御を行う処理であり、フォーカシングレンズの合焦位置を検出してフォーカシングレンズの位置を調整する処理である。詳細には、まずCPU201が、フォーカシングレンズを無限遠に相当する位置から各々の動作モードにおいて設定される至近距離に相当する位置まで駆動させながら、撮像素子によって複数の画像信号を取得させるよう制御する。そして、画像信号から抽出される高周波成分が最も多くなるフォーカシングレンズの位置(合焦位置)等の測定データ及び/または撮影パラメータをメモリ202に記憶させ、フォーカシングレンズの位置を調整するよう制御する。
AE処理とは、画像処理部207での演算結果を用いて測光値を取得し、露出を適正にする処理である。詳細には、撮像部208から出力された画像データは、画像処理部207にて、1画面を複数のエリア(例えば、16×16)に分割され、分割エリアごとにRGB信号を積算され、その積算値がCPU201に提供される。CPU201は、積算値に基づいて被写体の明るさ(被写体輝度)を検出し、撮影に適した露出の値を算出する。求めた露出値に応じて、絞り値とシャッタースピードが決定され、これに従い、CPU201は撮像素子及び光学系を制御して適正な露光量を得る。また、露出が適正と判断されたなら、測定データ及び/または絞り値とシャッタースピード等の撮影パラメータはメモリ202に記憶される。
AF処理及びAE処理を実行する際、AF処理及びAE処理を高速で実行するために、撮像素子全体の画素範囲のうち、一部の選択された画素範囲である所定領域内でAF処理及びAE処理を行うことができる。この所定領域を囲む枠を測距枠と呼ぶ。画像処理部207はメモリ202に記憶された撮影パラメータから測距枠に関するフォーカス情報を算出し、撮像部208から出力される画像データに測距枠を重畳して出力する。そのため、表示部206には測距枠が重畳された画像データが表示される。また、画像処理部207は撮像部208から出力される画像データにフォーカス情報を付加して通信部204に出力する。また、通信部204には、測距枠が重畳された画像データを出力するようにしても良い。フォーカス情報には、画像データに対する測距枠の座標情報や画像データに対する測距枠で囲まれた領域の範囲、測距枠の数等の情報が含まれる。なお、画像データに重畳される測距枠の数や測距枠が重畳される画像データの位置は図3に示した表示例に限られない。表示部206に表示される測距枠a〜eのいずれか1つが選択された場合、CPU201は選択された測距枠で囲まれた領域の画像信号から抽出される高周波成分が最も大きくなる合焦位置を検出してフォーカシングレンズの位置を調整するAF処理を行う。また、表示部206に表示される測距枠a〜eのいずれか1つが選択された場合、CPU201は選択された測距枠で囲まれた領域の画素範囲からRGB信号を積算した積算値に基づいて撮影に適した露出値を算出して、絞り値とシャッタースピードを決定する。
EF処理とは、CPU201がAE処理を行って絞り値及びシャッタースピードを決定した結果に応じて、フラッシュが必要と判断した場合に行う処理である。CPU201でフラッシュが必要と判定された場合、フラッシュ・フラグをセットし、フラッシュを充電する。また、AF補助光の投光機能、フラッシュ調光機能も有する。
AWB処理とは、記録された画像から外光の色温度、外光とフラッシュ光との光量の割合を求めることによって、フラッシュ撮影画像の適切な色バランスを得るために行う処理である。画像処理部207によって、分割エリアごとにRGB信号の色別の平均積算値が算出され、その算出結果がCPU201に提供される。CPU201は、Rの積算値、Bの積算値、Gの積算値を得て、分割エリア毎にR/G及びB/Gの比を求める。そして、これらR/G、B/Gの値のR/G、B/G軸座標の色空間における分布等に基づいて光源種判別を行い、判別された光源種に応じてR、G、B信号に対するホワイトバランスの補正値を制御し、各色チャンネルの信号に補正をかける。R、G、B信号に対するホワイトバランスの補正の値はメモリ202に記録される。
以上、撮影準備処理について説明を行ったが、これらの処理以外に、撮影処理が行われる前に実行されるのが好ましい処理を撮影準備処理として行っても良い。また、AWB処理は、撮影準備処理と撮影処理の間に行っても良い。
CPU201によって画像処理部207及び撮像部208が撮影処理の開始を指示された場合、CPU201によって、画像処理部207及び撮像部208は制御され、撮影処理が行われる。撮像部208の撮像素子から出力されたアナログデータがA/D変換部でデジタル動画データに変換された後、デジタル静止画データとして画像処理部207に出力される。そして、デジタル静止画データは画像処理部207で圧縮が行われた画像データは、記録媒体203aに静止画データとして書き込まれる。
なお、撮像装置200は、デジタル一眼レフカメラに限るものではない。例えば、撮像装置200は、ビデオカメラ、デジタルスチルカメラ、カメラ付き携帯電話等の撮像装置であってもよい。
<PC100からコマンドを受けた際のカメラ200の動作>
次に、図1、図2及び図4を参照し、遠隔制御システムにおいて、カメラ200で行われる処理について説明する。図4は実施例1に係るカメラ200の動作モードが撮影モードの場合に実行される処理の一例を示すフローチャートである。図4に示すフローチャートは、PC100とカメラ200とがUSBケーブル300を介して通信可能な状態であって、PC100及びカメラ200が電源オン状態であるときに実行される処理である。なお、図4のフローチャートに示す処理は、CPU201がメモリ202に記憶されている制御プログラムを実行することによって制御される。なお、図4のフローチャートに示す処理は、カメラ200の動作モードが撮影モードである場合に実行されるものとする。
PC100上において、ユーザの操作によってカメラ200をリモートコントロールするソフトウェアが指定され、ソフトウェアが実行された場合、PC100からカメラ200の動作モードを確認するための動作モード確認信号が送信される。そのため、ステップS401において、CPU201は通信部204が動作モード確認信号を受信したか否かを判定する。CPU201によって、通信部204が動作モード確認信号を受信したと判定された場合(ステップS401でYESの場合)、本フローチャートはステップS401からステップS402に進む。CPU101によって、通信部103が撮影モード信号を受信しなかったと判定された場合(ステップS401でNOの場合)、本フローチャートはステップS401からステップS401に戻る。
ステップS402において、CPU201はカメラ200の動作モードが通常の撮影モード(単写モード)であることを示す撮影モード信号を生成し、通信部204に出力する。CPU201によって、撮影モード信号が出力された通信部204は撮影モード信号をPC100に送信するように制御される。通信部204が撮影モード信号をPC100に送信した場合、本フローチャートはステップS402からステップS403に進む。なお、カメラ200の動作モードが撮影モード以外に、バルブ撮影モードや連写撮影モードである場合は、CPU201によってバルブ撮影モード信号や連写撮影モード信号が生成され、撮影モード信号と同様にPC100に送信される。
ステップS403において、CPU201はPC100から通信部204が動画データを要求する動画データ要求信号を受信したか否かを判定する。CPU201によって、通信部204が動画データ要求信号を受信したと判定された場合(ステップS403でYESの場合)、本フローチャートはステップS403からステップS404に進む。CPU201によって、通信部204が動画データ要求信号を受信しなかったと判定された場合(ステップS403でNOの場合)、本フローチャートはステップS403からステップS403に戻る。
ステップS404において、CPU201は画像処理部207に指示を出して、フォーカス情報を画像データに付加させるように制御する。CPU201はフォーカス情報が付加された画像データを通信部204に出力するように画像処理部207を制御する。その後、画像処理部207はCPU201によって撮影処理を行う指示が出されるまで、画像データを通信部204に連続的に出力し続ける。そのため、CPU201は通信部204に、連続的に出力された画像データを動画データとして、画像データに付加されたフォーカス情報を補助データとして、USBケーブル300を介してPC100に送信するように制御する。通信部204が動画データ及び補助データをPC100に送信した場合、本フローチャートはステップS404からステップS405に進む。
なお、本実施例では、PC100からの動画送信要求に応じて動画データを送信する際、送信開始時にのみフォーカス情報を送信する。また、CPU201は画像処理部207に指示を出してフォーカス情報及び測距枠が付加された画像データを通信部204に出力するように制御し、その後、撮影処理を行う指示が出されるまで、測距枠が付加された画像データを通信部204に出力し続けても良い。この場合、測距枠の画像が画像データに多重されて送信されている旨を補助データとしてPC100に送信する。
ステップS404において、カメラ200の動作モードが撮影モードであることがPC100に通知された場合、ユーザは表示部104において、PC100によってカメラ200が制御可能な状態であると判断することができる。そのため、カメラ200の動作モードが撮影モードであることがPC100に通知された場合、ユーザの操作によってカメラ200を制御するための制御コマンドがPC100により生成され、カメラ200に送信されてくることが考えられる。そこで、ステップS405において、CPU201は通信部204が撮影準備コマンドを受信したか否かを判定する。CPU201は通信部204が撮影準備コマンドを受信したと判定した場合、CPU201はメモリ202に撮影準備フラグを設定する。例えば、測距枠bが選択され、測距枠bに応じた撮影準備コマンドを受信した場合、CPU201はメモリ202の測距枠bの項目に、撮影準備処理が実行される所定領域として測距枠bで囲まれた領域が選択されたことを示す撮影準備フラグを設定する。CPU201によって、メモリ202に撮影準備フラグが設定された場合(ステップS405でYESの場合)、本フローチャートはステップS405からステップS406に進む。CPU201によって、通信部204が撮影準備コマンドを受信しなかったと判定された場合(ステップS405でNOの場合)、本フローチャートはステップS405からステップS405に戻る。
ステップS406において、CPU201はメモリ202に設定された撮影準備フラグに対応した測距枠a〜eのいずれか一つによって囲まれた領域の画素範囲に応じて、画像処理部207及び撮像部208を制御して撮影準備処理を行う。例えば、メモリ202に設定された撮影準備フラグに対応した測距枠が測距枠bの場合について説明する。AF処理として、CPU201は測距枠bで囲まれた領域の画素範囲から画像信号を読み出し、画像信号から高周波成分を抽出し、CPU201は高周波成分が最も大きくなるフォーカシングレンズの合焦位置を検出してフォーカシングレンズの位置を調整する。また、AE処理として、CPU201は測距枠bで囲まれた領域の画素範囲からRGB信号を積算し、この積算値に基づいて撮影に適した露出値を算出して、絞り値とシャッタースピードを決定する。画像処理部207及び撮像部208において、撮影準備処理が行なわれた場合、本フローチャートはステップS406からステップS407に進む。
ステップS407において、CPU201はメモリ202からシャッタースピード、絞り値、ホワイトバランス値等の撮影パラメータを読み出して通信部204に出力し、撮影パラメータをPC100に送信するように通信部204を制御する。通信部204が撮影パラメータをPC100に送信した場合、本フローチャートはステップS407からステップS408に進む。
PC100からカメラ200に撮影準備コマンドを送信された後、PC100からカメラ200に撮影処理を行わせるための撮影コマンドが送信されてくることが考えられる。そこで、ステップS408において、CPU201は通信部204がPC100からの撮影コマンドを受信したか否かを判定する。CPU201は通信部204が撮影コマンドを受信したと判定した場合、メモリ202に撮影フラグをセットする。CPU201がメモリ202に撮影フラグをセットした場合(ステップS408でYESの場合)、本フローチャートはステップS408からステップS409に進む。CPU201によって通信部204が撮影コマンドを受信しなかったと判定された場合、本フローチャートはステップS408からステップS411に進む。
ステップS409において、CPU201は撮影処理を行うように撮像部208を制御する。撮像部208はコマンドに応じて1画面の静止画データを撮影し、撮影した静止画データをメモリ202に保持する。そして、この撮影した静止画データに対して画像処理部207により前述の処理を施して、記録部203により静止画データを含む静止画ファイルを作成して記録媒体203aに記憶する。撮像部208によって撮影処理が行なわれた場合、CPU201はメモリ202の撮影準備フラグ及び撮影フラグをリセットする。CPU201がメモリ202の撮影準備フラグ及び撮影フラグをリセットした場合、本フローチャートはステップS409からステップS410に進む。
ステップS410において、カメラ200が撮影した静止画データをPC100に送信する準備ができた場合、CPU201は受信した撮影コマンドによって記録した静止画ファイルを記録部203によって記録媒体203aから読み出し、通信部204に出力する。CPU201は、読み出した静止画ファイルをPC100に送信するように通信部204を制御する。通信部204がPC100に静止画ファイルを送信した場合、本フローチャートはステップS410からステップS405に戻る。
ステップS411において、CPU201は通信部204が撮影準備リセットコマンドを受信したか否かを判定する。CPU201によって、通信部204が撮影準備リセットコマンドを受信しなかったと判定された場合、本フローチャートはステップS411からステップS408に進む。CPU201は通信部204が撮影準備リセットコマンドを受信したと判定した場合、メモリ202の撮影準備フラグをリセットし、撮影準備処理を中止させるように画像処理部207及び撮像部208を制御する。画像処理部207及び撮像部208は、中止が行われるまで行われていた撮影準備処理による合焦位置、シャッタースピード、絞り値、ホワイトバランスの補正値等の撮影パラメータを保持したままAF処理、AE処理、EF処理、AWB処理等の処理を中断する。画像処理部207及び撮像部208は再びCPU201によって撮影準備処理を行うように制御された場合、中断されたAF処理、AE処理、EF処理、AWB処理等の処理の続きから再び撮影準備処理を開始する。CPU201がメモリ202にステップS405で設定された撮影準備フラグをリセットした場合(ステップS411でNOの場合)、本フローチャートはステップS411からステップS405に戻る。
なお、ステップS401からステップS410までの処理は、カメラ200の動作モードが撮影モード以外の動作モードの場合には行われない。
なお、画像データに付加され、PC100に送信されるフォーカス情報は、撮影準備処理によってフォーカシングレンズが合焦する際と撮影準備処理が終了する際にPC100に送信するようにしても良い。
<カメラ200へコマンドを送信する際のPC100の動作>
次に、図1から図3及び図5を参照し、実施例1に係るPC100で行われる処理を説明する。図5は実施例1に係るPC100で行われる処理の一例を示すフローチャートである。図5のフローチャートが示す処理は、PC100とカメラ200とがUSBケーブル300を介して通信可能な状態であって、PC100及びカメラ200が電源オン状態であるときに実行される処理である。図5のフローチャートに示す処理はカメラ200の動作モードが撮影モードの場合に実行される処理であって、カメラ200の動作モードが撮影モード以外の動作モードである場合は実行されない。なお、図5のフローチャートに示す処理は、CPU101がメモリ102に記憶されている制御プログラムを実行することによって制御される。実施例1ではマウスポインタ500を操作するためのポインティングデバイスの一例として、マウス105aによってマウスポインタ500の操作を行うものとする。
表示部104にPC制御画面が表示されている状態において、ユーザによってPC100上でカメラ200をリモートコントロールするソフトウェアが実行された場合、CPU101はメモリ102からカメラコントロール画面400が表示部104に表示させる。この場合、カメラコントロール画面400のビュー領域401、ステータス表示領域402、パラメータ領域403には、何も表示されない。ユーザがPC100を操作し、カメラ200に撮影を行わせるためには、カメラ200が撮影を行える状態であるか否か判定する必要がある。
そこで、ステップS501において、CPU101は、カメラ200の動作モードを確認するための動作モード確認信号を生成し、通信部103に出力する。CPU101は、動作モード確認信号をカメラ200にUSBケーブル300を介して送信するように通信部103を制御する。通信部103が動作モード確認信号をカメラ200に送信した場合、本フローチャートはステップS501からステップS502に進む。
カメラ200が動作モード確認信号を受信した場合、カメラ200は現在の動作モードを示すモード信号を生成し、PC100に送信する。そこで、カメラ200の動作モードが撮影モードであるか否かを判定するために、ステップS502において、CPU101は、通信部103がカメラ200から撮影モード信号を受信したか否かを判定する。通信部103がカメラ200から撮影モード信号を受信した場合、CPU101はメモリ102にカメラ200の動作モードを示す情報として「撮影モード」フラグを設定する。「撮影モード」フラグが設定された後、CPU101は図3の(a)に示すようにパラメータ領域403のMODEに「Av mode」と表示させ、ステータス表示領域402に「撮影可能」と表示させる。なお、本実施例では、カメラ200の動作モードが通常の撮影モードである場合に行われる処理について説明したが、カメラ200の動作モードが連写撮影を行う連写撮影モードやバルブ撮影を行うバルブ撮影モードの場合であっても、良いものとする。なお、通信部103が連写撮影モード信号を受信したとき、CPU101はパラメータ領域403のMODEに「連写mode」と表示させる。また、通信部103がバルブ撮影モード信号を受信したとき、CPU101はパラメータ領域403のMODEに「バルブmode」と表示させる。通信部103が撮影モード信号、連写モード信号及びバルブモード信号のいずれか一つを受信したとしても、CPU101はステータス表示領域402に「撮影可能」と表示させる。
CPU101によって、通信部103が撮影モード信号を受信したと判定された場合(ステップS502でYESの場合)、本フローチャートはステップS502からステップS503に進む。CPU101によって、通信部103が撮影モード信号を受信しなかったと判定された場合(ステップS502でNOの場合)、本フローチャートはステップS502からステップS502に戻る。また、通信部103がカメラ200の動作モードが再生モードであることを示す再生モード信号等の撮影モード信号と異なる動作モードを示す信号を受信した場合も、CPU101によって、通信部103が撮影モード信号を受信しなかったと判定される。この場合も、本フローチャートはステップS502からステップS502に戻る。
ステップS503において、CPU101は、カメラ200によって生成されるライブビュー画像及びフォーカス情報をカメラ200に要求する画像データ要求信号を生成し、画像データ要求信号をカメラ200に送信するように通信部103を制御する。通信部103が画像データ要求信号を送信した場合、本フローチャートはステップS503からステップS504に進む。
カメラ200は画像データ要求信号を受信した場合、撮像部208から出力された連続的な画像データを動画データとして、画像データに付加されたフォーカス情報を補助データとして、PC100に送信する。そのため、カメラ200から動画データを受信することができたか否かを判定するために、ステップS504において、CPU101は通信部103が動画データ及び補助データを受信したか否かを判定する。通信部103がカメラ200から動画データ及び補助データを受信した場合、CPU101は通信部103が受信した動画データを表示部104に供給し、通信部103が受信した補助データを解析する。CPU101は補助データを解析した結果、通信部103が受信した動画データに関するフォーカス情報を取得し、フォーカス情報に応じて、測距枠を動画データに重畳させて図3の(a)に示すようにビュー領域401に表示させる。これによって、ビュー領域401には、カメラ200のライブビュー画像が表示される。なお、カメラ200から送信される画像データに測距枠の画像が多重されている場合、PC200では測距枠の表示は行わない。カメラ200は測距枠が画像データに多重されているか否かを補助データとして画像データに付加して送信するため、PC200はこの補助データによって画像データに測距枠が多重されているか否か判定することができる。ビュー領域401に、カメラ200から受信したライブビュー画像が表示された場合(ステップS504でYESの場合)、本フローチャートはステップS504からステップS505に進む。CPU101によって、通信部103がカメラ200から動画データまたは補助データを受信しなかったと判定された場合、CPU101はステータス表示領域402にカメラ200で撮影が行えない旨やカメラ200と通信が行えない旨を表示させる。ステータス表示領域402にカメラ200で撮影が行えない旨や通信が行えない旨が表示された場合、本フローチャートは終了する。また、通信部103が動画データまたは補助データを受信できなかった場合もこれと同様の処理を行う。
ステップS505において、CPU101は第1の判定として、マウスポインタ500が各測距枠a〜eに囲まれた所定領域の中に存在するか否か判定する。例えば、図3の(b)のようにカメラコントロール画面400でマウスポインタ500が測距枠b上に重なるように操作部105のマウス105aで操作(マウスオーバ)された場合、CPU101はマウスポインタ500が測距枠bの中に存在していると判定する。カメラコントロール画面400でマウスポインタ500が測距枠b上にマウスオーバされた場合を一例として、説明する。CPU101は、マウスポインタ500の座標情報と、ステップS504においてカメラ200から受信したフォーカス情報から第1の情報として取得した測距枠a〜eの座標情報とを取得する。CPU101は、取得した各測距枠a〜eのいずれか一つによって囲まれた領域の中に第2の情報として取得したマウスポインタ500の座標情報が存在するか否かを判定する。CPU101によって、マウスポインタ500の座標情報が測距枠bで囲まれた領域の中に存在すると判定された場合、(ステップS505でYESの場合)、本フローチャートはステップS505からステップS506に進む。CPU101によって、マウスポインタ500の座標情報が測距枠a〜eのいずれか一つによって囲まれた領域の中に存在しないと判定された場合(ステップS505でNOの場合)、本フローチャートは、ステップS505からステップS505に戻る。
ステップS506において、CPU101によって測距枠a〜eのいずれか一つによって囲まれた領域の中にマウスポインタ500が存在すると判定されると、図3の(b)のようにマウスポインタ500によってマウスオーバされた測距枠bは黒枠で囲まれる。なお、マウスポインタ500がマウスオーバした測距枠は、黒枠に囲まれるという構成以外に、他の色枠や測距枠全体の色を変えるという構成であっても良い。
マウスポインタ500がマウスオーバした測距枠が測距枠bである場合、第1の指示として、CPU101は、測距枠bに対応した撮影準備処理をカメラ200に行わせるための撮影準備コマンドを生成し、通信部103に出力する。測距枠bに対応した撮影準備処理コマンドは、カメラ200に対する撮影準備処理の指示と測距枠a〜eのいずれか一つの中から測距枠bが選択されたことを示す情報とを含むコマンドである。CPU101によって通信部103はカメラ200に撮影準備コマンドを送信するように制御される。このように、マウスポインタ500が測距枠a〜eのいずれか一つによって囲まれた領域に存在すると判定されると、CPU101はマウスポインタ500が存在する測距枠に対応した撮影準備処理をカメラ200に行わせるための撮影準備コマンドを生成する。通信部103が撮影準備コマンドをカメラ200に送信した場合、本フローチャートはステップS506からステップS507に進む。撮影準備コマンドがカメラ200に送信され、カメラ200が撮影準備処理を行っている場合、通信部103は撮影パラメータを受信する。通信部103が受信した撮影パラメータに含まれる情報からCPU101はカメラ200が撮影準備処理としてどのような処理を行っているのかを判定することができる。そのため、CPU101はメモリ102からカメラ200の行っている処理に応じて、文字情報を読み出して、ステータス表示領域402に表示させる。例えば、カメラ200がAF処理だけを行っている場合、CPU101はメモリ102から文字情報を読み出して、ステータス表示領域402に「AF動作中」と表示させる。同様にカメラ200がAE処理だけを行っている場合、CPU101はメモリ102から文字情報を読み出して、ステータス表示領域402に「AE動作中」と表示させる。また、カメラ200がAWB処理だけを行っている場合、CPU101はメモリ102から文字情報を読み出して、ステータス表示領域402に「AWB動作中」と表示させても良い。
撮影準備コマンドがカメラ200に送信された後、ステップS505でマウスポインタ500が存在すると判定された測距枠で囲まれた領域の中にそのまま存在していれば、カメラ200は撮影コマンドを受信するまで、撮影準備処理を実行し続ける。しかし、マウスポインタ500がステップS505でマウスポインタ500が存在すると判定された測距枠で囲まれた領域の中から外れてしまった場合、カメラ200はそれまで実行していた撮影準備処理を中止する。また、ユーザが別の測距枠にマウスポインタ500をマウスオーバさせた場合も同様に、カメラ200はそれまで実行していた撮影準備処理を中止する。
そのため、カメラ200が撮影準備処理を行っている際、マウスポインタ500が、ステップS505でマウスポインタ500が存在すると判定された測距枠で囲まれた領域の中にそのまま存在しているのか否かを判定する必要がある。そこで、ステップS507において、ステップS505でマウスポインタ500が存在すると判定された所定の測距枠で囲まれた領域の中にそのままマウスポインタ500が存在しているか否かを判定する。例えば、CPU101はステップS505で行った処理と同様にマウスポインタ500の座標情報が測距枠bで囲まれた領域の中に存在するか否かを判定する。CPU101によって、マウスポインタ500の座標情報がステップS505において判定された測距枠で囲まれた領域の中に存在すると判定された場合、(ステップS507でYESの場合)、本フローチャートはステップS507からステップS508に進む。CPU101によって、マウスポインタ500の座標情報がステップS505において判定された測距枠で囲まれた領域の中に存在しないと判定された場合(ステップS507でNOの場合)、本フローチャートは、ステップS507からステップS509に進む。
ステップS508において、CPU101は、第2の判定として、マウスポインタ500を操作する操作部105のマウス105aのボタンがクリックされたか否かを判定する。CPU101によって、マウス105aのボタンがクリックされたと判定された場合(ステップS508でYESの場合)、本フローチャートは、ステップS508からステップS510に進む。CPU101によって、マウス105aのボタンがクリックされていないと判定された場合(ステップS508でNOの場合)、本フローチャートはステップS508からステップS507に戻る。
ステップS509において、CPU101は撮影準備処理をリセットするための撮影準備リセットコマンドを生成し、通信部103に出力する。CPU101は撮影準備リセットコマンドをカメラ200に送信するように通信部103を制御する。また、CPU101はメモリ102から文字情報を読み出して、ステータス表示領域402に「撮影可能」と表示させる。通信部103が撮影準備リセットコマンドを送信した場合、本フローチャートは、ステップS509からステップS505に戻る。
ステップS510において、CPU101は第2の指示手段として、撮影コマンドを生成し、通信部103に出力する。CPU101は撮影コマンドをカメラ200に送信するように通信部103を制御する。また、CPU101はメモリ102から文字情報を読み出してステータス表示領域402に「撮影処理中」と表示させる。通信部103が撮影コマンドをカメラ200に送信した場合、本フローチャートはステップS510からステップS511に進む。
PC100からカメラ200に撮影コマンドが送信された場合、カメラ200では、図4のステップS409の撮影処理とステップS410の静止画ファイルを送信する処理が実行される。そこで、ステップS511において、CPU101は通信部103がカメラ200から撮影コマンドに応じてカメラ200が撮影した静止画ファイルを受信したか否かを判定する。CPU101によって、通信部103がカメラ200から静止画ファイルを受信したと判定された場合(ステップS511でYESの場合)、本フローチャートはステップS511からステップS512に進む。CPU101によって、通信部103がカメラ200から静止画ファイルを受信しなかったと判定された場合(ステップS511でNOの場合)、本フローチャートはステップS511からステップS511に戻る。
ステップS512において、CPU101はステップS511において、通信部103がカメラ200から受信した静止画ファイルを一旦メモリ102に格納する。そして、表示部104にこの静止画ファイルに含まれる静止画データを所定の期間表示させるように制御を行う。表示部104にカメラ200から受信した静止画データが所定の期間表示された場合、本フローチャートはステップS512からステップS501に戻る。表示部104にカメラ200から受信した静止画データが所定の期間表示された後、ビュー領域401及びステータス表示領域402には何も表示されなくなる。なお、カメラ200から受信した静止画データは表示部104に2〜3秒間表示されるものとし、所定の期間は任意の時間とする。
以上説明したように、実施例1に係る遠隔制御システムによれば、ユーザは、ライブビュー画像上のユーザが選択した測距枠の中でマウス105a等のポインティングデバイスの操作を行うだけで、カメラ200に撮影を行わせることができる。そのため、非常にスムーズかつ簡単な操作で、カメラ200を遠隔制御することができ、ユーザが選択した測距枠で囲まれた領域内の画像データに対する撮影準備処理及び撮影処理をカメラ100に行わせることができる。そのため、ユーザは所望の測距枠を指定し、それに対応した撮影準備処理をカメラ100に行わせることができるので、所望の画像を取得することができる。
また、ユーザは遠隔制御システムにおいて、ライブビュー画像を確認しながら、カメラ200に撮影処理を行わせることができるので、ユーザは所望の画像を取得することができる。
なお、実施例1ではカメラコントロール画面400の画像内でマウスオーバすることによって測距枠bを指定し、カメラ200に測距枠bに対応した撮影準備処理を実行させた場合について説明したが、これに限られることはない。測距枠b以外の測距枠a、c〜eのいずれかの領域上にマウスオーバされた場合であっても、同様の処理を行うものとする。
なお、実施例1ではマウス105aによってマウスポインタ500を操作しているが、これ以外にも、タブレット、トラックボール、トラックパッド等のポインティングデバイスを用いても良く、キーボード105bを用いても良い。また、マウス105aのボタンは右ボタンでも左ボタンでも良く、スクロールボタンであっても良い。
次に、図1、図6から図8を参照し、本発明の実施例2に係るPC100で行われる処理を説明する。実施例2では、実施例1と共通する部分についてはその説明を省略し、実施例1と異なる部分を説明する。
実施例2は、図6に示すように顔検出部209を備えた構成である。操作部205のメニューボタンによって顔検出機能がオンに設定されている場合は、実施例2によるカメラ200は、顔検出部209によって画像データに含まれる被写体(被写体が人物であるとき)の顔を検出することができる。
顔検出部209には、画像処理部から出力される画像データを解析し、画像データにおける被写体中に人物がいるか否かの判定及び画像データの被写体中に人物がいる場合には、その人物における顔部の位置や大きさ等の判定等の顔検出処理を行う。検出された被写体の顔は、その顔の位置や大きさの情報をCPU201に出力する。なお、顔検出処理は、例えば、肌色を他の色と区別するための色空間上で、予めサンプリングした肌色の情報から色空間上の肌色の範囲を定め、各画素の色が定めた範囲に入っているか否かを判定することにより行われる肌色検出による顔検出処理である。その他にもエッジ検出又は形状パターン検出による顔検出方法、色相検出による顔検出方法等の方法を利用することができる。
CPU201は、顔検出部209から顔領域の位置及び大きさを示す情報を取得すると、メモリ202に記憶し、その取得した顔領域に測距枠が位置するように制御して、表示部206に表示させる。なお、顔検出部209は撮像部208によって撮影処理が行われるまで、顔領域の位置及び大きさを示す顔情報等をメモリ202に書き込み更新し続ける。
画像処理部207は顔検出部209によって検出される顔情報を基に測距枠を顔領域に位置するように制御して表示部206に出力する。顔領域に位置するように制御された測距枠を顔検出枠という。顔検出枠は画像処理部207によって表示部206に出力され、表示部206に表示される画像データに重畳されて表示される。
実施例1では、マウスポインタ500が複数の測距枠のうちいずれか一つに囲まれた領域内に存在する場合、PC100は撮影準備コマンドをカメラ200に送信し、マウス105aがクリックされるとPC100は撮影コマンドをカメラ200に送信していた。しかし、実施例2では、マウスポインタ500が顔検出枠f又はgに囲まれた領域内に存在する場合、PC100は撮影準備コマンドをカメラ200に送信するものとする。また、マウスポインタ500が顔検出枠f又はgに囲まれた領域内に存在する場合、マウス105aがクリックされると、PC100は撮影コマンドをカメラ200に送信するものとする。
そこで、本実施例では、画像データに対する顔検出枠の座標情報や画像データに対する顔検出枠で囲まれた領域の範囲、顔検出枠の数等の情報を含むフォーカス情報を送信する画像データのフレーム毎に付加して、カメラ200からPC100に送る。CPU201はフォーカス情報が付加された画像データを連続的にPC200に送信するように通信部204を制御しても良い。また、CPU201は撮影準備処理によってフォーカシングレンズが合焦する際と撮影準備処理が終了する際にフォーカス情報が付加された画像データをPC200に送信するように通信部204を制御しても良い。
また、CPU201は通信部204が画像データ要求信号を受信した場合、USBケーブル300を介して、顔検出枠が重畳された動画データをPC100に送信させるように通信部204を制御しても良いものとする。
図7に表示されているカメラコントロール画面400は、表示部104に表示されるメニュー画面の一つであり、メモリ102に記憶されている。
カメラコントロール画面400のビュー領域401上には、カメラ200から通信部103で連続的に受信したライブビュー画像データを表示している。ライブビュー画像データ上にはカメラ200で付加された顔領域を囲む顔検出枠f及びgがライブビュー画像上に重畳されて表示されている。
次に、図7及び図8を参照し、実施例2に係るPC100で行われる処理について説明する。図8は実施例2に係るPC100で行われる処理の一例を示すフローチャートである。図8のフローチャートが示す処理は、PC100とカメラ200とがUSBケーブル300を介して接続され、PC100及びカメラ200が電源オン状態であるときに実行される処理である。なお、図8のフローチャートに示す処理は、CPU101がメモリ102に記憶されている制御プログラムを実行することによって制御される。
図8に示すフローチャートは、実施形態1の図5に示すフローチャートの処理と同様の処理を行う箇所については、図5の処理と同じ番号を付し、説明を省略する。実施例1と同様に実施例2でも、マウスポインタ500を操作するためのポインティングデバイスの一例として、マウス105aによってマウスポインタ500の操作を行うものとする。
ステップS805において、CPU101はマウスポインタ500が顔検出枠fまたはgに囲まれた所定領域の中に存在するか否か判定する。例えば、図7の(b)に示すようにカメラコントロール画面400でマウスポインタ500が顔検出枠f上にマウスオーバされた場合、CPU101はマウスポインタ500が顔検出枠fの中に存在していると判定する。カメラコントロール画面400でマウスポインタ500が顔検出枠f上にマウスオーバされた場合を一例として説明する。CPU101は、マウスポインタ500の座標情報と、ステップS504においてカメラ200から受信したフォーカス情報から顔検出枠fまたはgの座標情報とを取得する。CPU101は、取得した顔検出枠fまたはgによって囲まれた領域の中に取得したマウスポインタ500の座標情報が存在するか否かを判定する。CPU101によって、マウスポインタ500の座標情報は顔検出枠fで囲まれた領域の中に存在すると判定された場合、(ステップS805でYESの場合)、本フローチャートはステップS805からステップS806に進む。CPU101によって、マウスポインタ500の座標情報は顔検出枠fまたはgによって囲まれた領域の中に存在しないと判定された場合(ステップS805でNOの場合)、本フローチャートは、ステップS805からステップS805に戻る。
ステップS806において、CPU101によって、顔検出枠fまたはgによって囲まれた領域の中にマウスポインタ500が存在すると判定されると、図7の(b)のようにマウスポインタ500によってマウスオーバされた顔検出枠fは黒枠で囲まれる。また、CPU101はカメラ200がAF処理を行っている場合、メモリ102から文字情報を読み出して、ステータス表示領域402に「AF動作中」と表示させる。また、カメラ200がAF処理を行っている場合、ステータス表示領域402に「AF動作中」と表示させる。なお、マウスポインタ500がマウスオーバした顔検出枠は、黒枠に囲まれるという構成以外に、他の色枠や顔検出枠全体の色を変えるという構成であっても良い。
マウスポインタ500がマウスオーバした顔検出枠が顔検出枠fである場合、CPU101は、顔検出枠fに対応した撮影準備処理をカメラ200に行わせるための撮影準備コマンドを生成し、通信部103に出力する。顔検出枠fに対応した撮影準備処理コマンドは、カメラ200に対する撮影準備処理の指示と顔検出枠fまたはgの中から顔検出枠fが選択されたことを示す情報とを含むコマンドである。CPU101によって通信部103はカメラ200に撮影準備コマンドを送信するように制御される。このように、マウスポインタ500が顔検出枠fまたはgによって囲まれた領域に存在すると判定されると、CPU101はマウスポインタ500が存在する顔検出枠に対応した撮影準備処理をカメラ200に行わせるための撮影準備コマンドを生成する。通信部103が撮影準備コマンドをカメラ200に送信した場合、本フローチャートはステップS506からステップS507に進む。
撮影準備コマンドがカメラ200に送信された後、ステップS805でマウスポインタ500が存在すると判定された所定の顔検出枠で囲まれた領域の中にそのまま存在していれば、カメラ200は撮影コマンドを受信するまで、撮影準備処理を実行し続ける。しかし、マウスポインタ500がステップS505でマウスポインタ500が存在すると判定された顔検出枠で囲まれた領域の中から外れてしまった場合、カメラ200はそれまで実行していた撮影準備処理を中断する。また、ユーザが別の顔検出枠にマウスポインタ500をマウスオーバさせた場合も同様に、カメラ200はそれまで実行していた撮影準備処理を中断する。そのため、カメラ200が撮影準備処理を行っている際、マウスポインタ500が、ステップS805でマウスポインタ500が存在すると判定された所定の顔検出枠で囲まれた領域の中にそのまま存在しているのか否かを判定する必要がある。
そこで、ステップS807において、ステップS805でマウスポインタ500が存在すると判定された所定の顔検出枠で囲まれた領域の中にそのままマウスポインタ500が存在しているか否かを判定する。例えば、CPU101はステップS805で行った処理と同様にマウスポインタ500の座標情報が顔検出枠fで囲まれた領域の中に存在するか否かを判定する。CPU101によって、マウスポインタ500の座標情報はステップS805において判定された顔検出枠で囲まれた領域の中に存在すると判定された場合、(ステップS807でYESの場合)、本フローチャートはステップS807からステップS808に進む。CPU101によって、マウスポインタ500の座標情報はステップS805において判定された顔検出枠で囲まれた領域の中に存在しないと判定された場合(ステップS807でNOの場合)、本フローチャートは、ステップS807からステップS809に進む。
このように、マウス105aによってマウスポインタ500と顔検出枠fかgに囲まれた領域とが重なるように操作されると、PC100はカメラ200に撮影準備処理を指示することができる。その後、マウス105aによってマウスポインタ500と顔検出枠fかgに囲まれた領域とが重なったまま、マウス105aがクリックされるとPC100はカメラ200に撮影処理を指示する。
以上説明したように、本実施例2に係る遠隔制御システムによれば、ユーザは、ライブビュー画像上のユーザが選択した顔検出枠の中でマウス105aの操作を行うだけで、カメラ200に撮影を行わせる。そのため、非常にスムーズかつ簡単な操作で、カメラ200を遠隔制御することができ、ユーザが選択した顔検出枠で囲まれた領域内の画像データに対する撮影準備処理及び撮影処理をカメラ100に行わせることができる。そのため、ユーザは所望の顔検出枠を指定し、それに対応した撮影準備処理をカメラ100に行わせることができるので、所望の画像を取得することができる。
また、ユーザは遠隔制御システムにおいて、ライブビュー画像を確認しながら、カメラ200に撮影処理を行わせることができるので、ユーザは所望の画像を取得することができる。
なお、実施例2ではカメラコントロール画面400において、マウスオーバで顔検出枠fを指定し、カメラ200に顔検出枠fに対応した撮影準備処理を実行させた場合について説明したが、これに限られることはない。顔検出枠f以外の顔検出枠gがマウスオーバで指定された場合であっても、同様の処理を行うものとする。
また、ユーザはマウスオーバによって行う所定領域の指定を実施例1に挙げた測距枠又は実施例2に挙げた顔検出枠に対して行えるように、カメラ200には、測距枠又は顔検出枠を切り替えて表示することが可能な切り替え手段を設けても良い。
また、実施例2では、顔検出枠が2つの場合について、説明してきたが、この顔検出枠の数はカメラ200の顔検出機能によって決定する。
また、実施例1と同様にマウスポインタ500を操作するものとして、マウス105a以外にも、タブレット、トラックボール、トラックパッド等のポインティングデバイスを用いても良く、キーボード105bを用いても良い。また、マウス105aのボタンは右ボタンでも左ボタンでも良く、スクロールボタンであっても良い。
(他の実施例)
本発明に係る制御装置100は、実施例1から2で説明した制御装置100に限定されるものではない。例えば、本発明に係る制御装置100は、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1から2で説明した様々な処理及び機能は、コンピュータプログラムにより実現することも可能である。この場合、本発明に係るコンピュータプログラムは、コンピュータ(CPU等を含む)で実行可能であり、実施例1から2で説明した様々な機能を実現することになる。
本発明に係るコンピュータプログラムは、コンピュータ上で稼動しているOS(Operating System)などを利用して、実施例1から2で説明した様々な処理及び機能を実現してもよいことは言うまでもない。
本発明に係るコンピュータプログラムは、コンピュータ読取可能な記録媒体から読み出され、コンピュータで実行されることになる。コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。また、本発明に係るコンピュータプログラムは、通信インターフェースを介して外部装置からコンピュータに提供され、当該コンピュータで実行されるようにしてもよい。