以下、添付図面に従って本発明に係る動き/姿勢入力方法及びその装置を実施するための最良の形態について詳細に説明する。
図1は、本発明が適用されたデジタルカメラの外観を背面側から簡易的に示した背面斜視図である。同図に示すデジタルカメラ10は、携帯可能なコンパクトタイプのデジタルカメラであり、そのカメラ本体12は、矩形の箱状に形成されている。同図にはカメラ本体12の正面側に設けられた撮影レンズ14、カメラ本体12の上面に設けられたレリーズスイッチ22、電源スイッチ24、カメラ本体12の背面側に設けられた液晶モニタ30、検出有効スイッチ32、OKスイッチ(決定スイッチ)34が示されている。尚、デジタルカメラ10は他の構成要素も備えているが、詳細は省略する。
電源スイッチ24をオン位置とオフ位置とで切り替えられるようになっており、電源スイッチ24をオン位置に設定すると、デジタルカメラ10の電源がオンされ、電源スイッチ24をオフ位置に設定するとデジタルカメラ10の電源がオフされる。
レリーズスイッチ22は、いわゆる「半押し」と「全押し」とからなる2段ストローク式のスイッチで構成されている。撮影モードにおいて、レリーズスイッチ20を半押しすると、AE(Automatic Exposure)、AF(Auto Focus)、AWB(Automatic White Balance )が機能し、続いて全押しすると、撮影処理が行われるようになっている。
液晶モニタ30には、撮影モードでのスルー画の表示や、再生モードでの撮影済み画像の表示等が行われる。また、各種機能の設定に関するメニュー画面等も表示される。
検出有効スイッチ32は、カメラ本体12(デジタルカメラ10全体)の動き/姿勢による操作入力を有効/無効に切り替えるスイッチであり、検出有効スイッチ32を押しながらカメラ本体12が所定の動き/姿勢となるように操作することによって、予め決められた指示をデジタルカメラ10に入力することができるようになっている。これによって例えば、キー操作を行うことなく、撮影モードと再生モードの切替操作や、各モードでの環境設定(液晶モニタ30でのメニュー画面の表示)への移行操作、環境設定時での設定項目や設定内容の選択操作、撮影モードでのズーム操作等を行うことができるようになっている。尚、カメラ本体12の動き/姿勢による操作入力については後述する。
OKスイッチ(本発明のOKボタンに相当)34は、未決定状態を決定状態にすることを指示するスイッチであり、例えば、液晶モニタ30に表示される環境設定の画面において、目的の設定内容を選択した状態でOKスイッチ34を押すと、その設定内容に決定される。
例えば、スイッチ32として、二段スイッチであって、各段に押し込まれないときにセンサ入力手段の無効を選択し、一段目まで押し込まれたときにセンサ入力手段の有効を選択し、二段目まで押し込まれたときにOKスイッチ34として機能(OKの意図を入力する)するものを適用することが考えられる。この場合、スイッチ32は、OKスイッチ34と兼用される。このようにすれば操作性が向上する。なお、レリーズスイッチ22をこのような多段スイッチとして利用することも考えられる。
図2は、図1のデジタルカメラ10の電気的構成を示すブロック図である。同図に示すように、デジタルカメラ10は、CPU50、操作部52(図1のレリーズスイッチ22、電源スイッチ24、検出有効スイッチ32、OKスイッチ34等)、ROM54、EEPROM56、メモリ(SDRAM)58、VRAM60、撮像素子(CCD)62、タイミングジェネレータ(TG)64、アナログ信号処理回路66、A/D変換器68、画像入力コントローラ70、画像信号処理回路72、圧縮・伸張処理回路74、メディアコントローラ76、記憶メディア(メモリカード)78、エンコーダ80、AE/AWB検出回路82、AF検出回路84、動き/姿勢検出素子90、信号出力回路92等で構成されている。
CPU50は、デジタルカメラ10の全体の動作を制御する制御部として機能するとともに、各種の演算処理を行う演算手段として機能し、操作部52からの入力や、後述するカメラ本体12の動き/姿勢により認識した操作入力に対応した処理を所定の制御プログラムに従って実行すると共に、各回路を制御する。
バス100を介して接続されたROM54には、CPU50が実行する制御プログラム及び制御に必要な各種データ等が格納されており、EEPROM56には、ユーザ設定情報等のデジタルカメラ10の動作に関する各種設定情報等が格納されている。
メモリ(SDRAM)58は、CPU50の演算作業用領域として利用されるとともに、画像データの一時記憶領域として利用され、VRAM60は、表示用の画像データ専用の一時記憶領域として利用される。
撮像素子62は、所定のカラーフィルタ配列(たとえば、ベイヤ配列)のカラーCCDで構成されている。図示しない撮影光学系を介して撮像素子62の受光面に入射した光は、その受光面に規則的に配列された各フォトダイオードによって入射光量に応じた量の信号電荷に変換される。
タイミングジェネレータ(TG)64は、CPU50からの指令に従い、主として撮像素子62を駆動するためのタイミング信号を生成する。撮像素子62は、このタイミングジェネレータ64から加えられるタイミング信号に従って各フォトダイオードに蓄積された信号電荷を電圧信号(画像信号)として出力する。
アナログ信号処理回路66は、撮像素子62から順次出力される画像信号を相関二重サンプリング処理するとともに増幅する。A/D変換器68は、このアナログ信号処理回路66から出力されたR、G、Bのアナログの画像信号をデジタルの画像信号に変換する。
画像入力コントローラ70は、所定容量のバッファメモリを内蔵しており、A/D変換器68から出力された1コマ分の画像信号を蓄積して、メモリ58に格納する。
画像信号処理回路72は、同時化回路、ガンマ補正回路、輪郭補正回路、輝度・色差信号生成回路等を含み、CPU50からの指令に従ってメモリ58に格納された画像信号を処理し、輝度信号と色差信号とからなるYUV信号を生成する。
液晶モニタ30にスルー画像を表示させる場合は、撮像素子62で連続的に画像を撮像し、得られた画像信号を連続的に処理してYUV信号を生成する。生成されたYUV信号は、VRAM60を介してエンコーダ80に加えられ、液晶表示用の信号形式に変換されて液晶モニタ30に出力される。これにより、液晶モニタ30にスルー画像が表示される。
画像を記録する場合は、撮影指令に応じて撮像素子62で画像を撮像し、得られた画像信号を処理してYUV信号を生成する。生成されたYUV信号は、圧縮・伸張処理回路74に加えられ、所定の圧縮画像データとされたのち、メディアコントローラ76を介して記憶メディア(メモリカード)78に格納される。
記憶メディア78に格納された圧縮画像データは、再生指令に応じてメディアコントローラ76を介して読み出され、圧縮・伸張処理回路74で非圧縮のYUV信号とされた後、エンコーダ80を介して液晶モニタ30に出力される。これにより、記憶メディア78に記録された画像が液晶モニタ30に再生表示される。
AE/AWB検出回路82は、CPU50からの指令に従って、入力された画像信号からAE制御及びAWB制御に必要な物理量を算出する。たとえば、AE制御に必要な物理量として、1画面を複数のエリア(例えば、16×16)に分割し、分割した各エリアごとにR、G、Bの画像信号の積算値を算出する。CPU50は、このAE/AWB検出回路82から得た積算値に基づいて被写体の明るさ(被写体輝度)を検出し、所定のプログラム線図から絞り値とシャッタスピードを決定する。
また、AWB制御に必要な物理量として、1画面を複数のエリア(例えば、16×16)に分割し、分割した各エリアごとにR、G、Bの画像信号の色別の平均積算値を算出する。CPU50は、得られたRの積算値、Bの積算値、Gの積算値から各分割エリアごとにR/G及びB/Gの比を求め、求めたR/G、B/Gの値のR/G、B/Gの色空間における分布等に基づいて光源種判別を行う。そして、判別された光源種に適したホワイトバランス調整値に従って、たとえば各比の値がおよそ1(つまり、1画面においてRGBの積算比率がR:G:B≒1:1:1)になるように、ホワイトバランス調整回路のR、G、B信号に対するゲイン値(ホワイトバランス補正値)を決定する。
AF検出回路84は、CPU50からの指令に従って、入力された画像信号からAF制御に必要な物理量を算出する。本実施の形態のデジタルカメラ10では、画像のコントラストによりAF制御を行うものとし、AF検出回路84は、入力された画像信号から画像の鮮鋭度を示す焦点評価値を算出する。CPU50は、このAF検出回路84で算出される焦点評価値が極大となるように、図示しない撮影レンズ(図1の撮影レンズ14)の鏡胴内に配置されたフォーカスレンズを制御する。尚、撮影レンズの鏡胴内に配置されたフォーカスレンズ、ズームレンズ、絞り等は、CPU50からの制御信号に従って図示しないモータで駆動されるようになっている。
動き/姿勢検出素子90は、カメラ本体12の動きや姿勢を検出するための素子である。例えばカメラ本体12の動きとして、直交する3軸(X、Y、Z)の各方向へのカメラ本体12の移動や各軸に対する回動(傾動)があり、カメラ本体12の姿勢として、重力方向に対するカメラ本体12の上下、左右の傾き等(各軸に対する回転角)がある。動き/姿勢検出素子90は、それらの動き、姿勢を表す要素のうちのいずれか1つ又は複数の要素について検出する。尚、本明細書では、動きと姿勢とを区別なく表す場合には「動き/姿勢」と記すものとする。
信号出力回路92は、動き/姿勢検出素子90から出力される信号に基づいてカメラ本体12の動き/姿勢を示す信号をCPU50に出力する。尚、後述する態様によっては、CPU50から信号出力回路92にリセット信号が与えられ、そのリセット信号が与えられたときのカメラ本体12の動き/姿勢を基準の状態として動き/姿勢を示す信号が信号出力回路92からCPU50に与えられる。
次に、動き/姿勢検出素子90及び信号出力回路92について説明する。動き/姿勢検出素子90は、上記のようにカメラ本体12の動きや姿勢を検出するための素子であり、例えば、カメラ本体12の動きを検出する動き検出素子として図3(A)に示すような加速度検出素子120が用いられる。同図に示す加速度検出素子120は、X軸、Y軸及びZ軸方向の加速度を検出し、その検出した加速度に対応した電圧信号を出力するもので、図3(B)に示すようにピエゾ抵抗Rx1〜Rx4、Ry1〜Ry4、Rz1〜Rz4を有している。尚、これらのピエゾ抵抗Rx1〜Rx4、Ry1〜Ry4、Rz1〜Rz4は、それぞれブリッジ構成されている。例えば、X軸方向からのみ加速度が加わった場合には、全てのピエゾ抵抗Rx1〜Rx4、Ry1〜Ry4、Rz1〜Rz4は引張応力を受け、ピエゾ抵抗Rx1、Rx3の抵抗値が減少し、他のピエゾ抵抗の抵抗値は増加する。これにより、X軸方向の加速度を検出するブリッジからのみ出力が得られ、Y軸方向、Z軸方向の加速度を検出するブリッジの出力は0となる。
同様に、Y軸方向又はZ軸方向からのみ加速度が加わった場合には、Y軸方向又はZ軸方向の加速度を検出するブリッジの出力のみ得られ、他の2つのブリッジの出力は0となる。従って、この加速度検出素子は、3軸方向の加速度をそれぞれ独立して検出することができる。
一方、カメラ本体12の姿勢を検出する姿勢検出素子として、例えば、図4(A)に示すような姿勢検出素子122が用いられる。同図に示す姿勢検出素子122は、X軸、Y軸及びZ軸の各々の方向に配置された圧力センサ124、126、128と、それらの各圧力センサ124、126、128に対向して配置された図示しない圧力センサとによって6面全面に圧力センサが配置された矩形状の枠が形成され、その枠内に重り130が収納される。各圧力センサ(126)には図4(B)に示すようにピエゾ素子132が設けられており、重り130により生じた圧力に応じた電圧が各圧力センサから出力されるようになっている。これによれば、重り130に生じる重力の方向と、姿勢検出素子122の姿勢に応じた各圧力センサの空間位置との関係によって、各圧力センサが重り130から受ける圧力が変化し、それに伴って各圧力センサから出力される電圧が変化する。従って、各圧力センサから出力される電圧値に基づいて姿勢を検出することができる。
尚、動き検出素子や姿勢検出素子は、上述のような素子に限らない。例えば、姿勢検出素子として地磁気センサを使用することもできる。
動き/姿勢を検出する図2の動き/姿勢検出素子90は、動き検出素子と姿勢検出素子のうち、操作として認識するカメラ本体12の動き/姿勢の要素に対して必要な素子(動き検出素子と姿勢検出素子のうちのいずれか一方又は両方)を備えている。
信号出力回路92は、動き/姿勢検出素子90から出力される電圧信号を取得し、その電圧信号に基づいて、カメラ本体12の動き/姿勢を示す値の信号をCPU50に出力する。例えば、カメラ本体12が各軸方向への加速度の大きさや上下、左右の傾き大きさを示す値を所定の状態を基準状態にして求め、その値を出力する。
ここで、基準状態は、信号出力回路92が任意の状態を基準状態とする第1の態様(信号出力回路92の出力をリセットしない態様)と、CPU50からのリセットの指示(リセット信号)が与えられたときの状態を基準の状態とする第2の態様(信号出力回路92の出力をリセットする態様)とが考えられる。第2の態様の場合には、図2の破線矢印で示すようにCPU50から信号出力回路92にリセットを指示するリセット信号が与えられる。
次に、カメラ本体12の動き/姿勢の操作によって所定の指示を入力するためのCPU50の処理(動き/姿勢入力処理)について説明する。
尚、以下の説明において、動き/姿勢検出素子90によって検出するカメラ本体12の動き/姿勢の要素(移動、傾動、傾き等)については特に限定しないものとし、所定の指示を入力するための操作として認識するカメラ本体12の動き/姿勢の各要素に関する状態を表す値(例えば、Z軸方向の移動に関する状態を表す値としてZ軸方向の加速度の値、姿勢に関する状態を表す値として上下、左右の傾きの値)の信号が信号出力回路92から出力されるものとする。
図5は、信号出力回路92の出力をリセットしない第1の態様でのCPU50の動き/姿勢入力処理について第1の実施の形態を示したフローチャートである。電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか(押されているか)否かを判定する(ステップS10)。NOと判定した場合には、この処理を繰り返す。
尚、実際には検出有効スイッチ32がオフの間、本フローチャートで示す動き/姿勢入力処理以外の処理が行われるが、動き/姿勢入力処理以外の処理については省略する(以下、図6、図12、図13、図14、図15で示すフローチャートでも同様)。
検出有効スイッチ32がオンされてステップS10でONと判定した場合、CPU50は、そのとき信号出力回路92から取得した入力値を保持する(ステップS12)。続いて、信号出力回路92から新たな入力値を取得し、ステップS12で保持した入力値と比較する(ステップS14)。即ち、ステップS14で取り込んだ新たな入力値からステップS12で保持した入力値を引くことによって、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態としてその後のカメラ本体12の動き/姿勢の状態を示す値を求める。
次にCPU50は、ステップS14で比較して求めた値の大きさが所定の閾値以上か否かを判定する(ステップS16)。NOと判定した場合には、ステップS14に戻る。一方、YESと判定した場合には、カメラ本体12の動き/姿勢による操作が有効に行われたと判断し、その操作に対応した従来のキー入力に対する処理と同等の処理を実行する(ステップS18)。すなわち、ユーザの意図する入力を推測し(ステップS16)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS18)。これは、本発明のセンサ入力手段に相当する。
以上の各ステップS10〜S18の処理は、検出有効スイッチ32がオンされている間、継続して実行される。
各ステップS10〜S18の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力(操作)がされたのと同様の処理を実行する(ステップS20)。これにより、次の効果を奏する。
例えば、撮影モードで撮影動作を行っている(例えばスルー画像を表示して構図を決定している)最中に露出補正値等の撮影パラメータを変更するべく、検出有効スイッチ32によって「有効」を選択し(ステップ10:ON)、センサ入力手段による入力(ステップS12〜S16)によって撮影パラメータ設定画面を表示した(ステップS18)状況を想定する。
この場合、もとの状態に戻って撮影モードで撮影動作を継続するには、従来であれば、センサ入力機能による入力が以後の撮影に影響を与えないようにするべく検出有効スイッチ32によって「無効」を選択し、さらに撮影パラメータの変更を途中で中止するべくキャンセルボタン(図示せず)を操作する。すなわち、もとの状態に戻るには、上記スイッチによる「無効」の選択とキャンセルボタンの操作の二つの動作を行う。
しかしながら、本実施形態のデジタルカメラ10においては、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS20)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。すなわち、操作性が向上する。
以上の各ステップS10〜S20の処理は、電源がオンされている間、継続して実行される。
各ステップS10〜S20の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する。
以上の処理によって検出有効スイッチ32がオンされている間だけ、カメラ本体12の動き/姿勢による操作入力が有効となり、ユーザが意図しない場合におけるカメラ本体12の動き/姿勢をユーザが意図した操作として誤認する不具合が防止される。
図5と同様の動き/姿勢入力処理を、信号出力回路92の出力をリセットする第2の態様で行う場合には、図6に示すフローチャートのようになる。電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか否かを判定する(ステップS30)。NOと判定した場合には、この処理を繰り返す。
検出有効スイッチ32がオンされてステップS30でONと判定した場合、CPU50は、信号出力回路92にリセット信号を出力して信号出力回路92の出力をリセットし、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態とした場合の入力値が信号出力回路92から得られるようにする(ステップS32)。
続いてCPU50は、信号出力回路92から新たな入力値を取得する(ステップS34)。そして、ステップS24で取得した入力値が所定の閾値以上か否かを判定する(ステップS36)。NOと判定した場合には、ステップS34に戻る。一方、YESと判定した場合には、そのカメラ本体12の動き/姿勢による操作入力が行われたと判断し、その操作に対応した従来のキー入力に対する処理と同等の処理を実行する(ステップS38)。すなわち、ユーザの意図する入力を推測し(ステップS36)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS38)。これは、本発明のセンサ入力手段に相当する。
以上の各ステップS30〜S38の処理は、検出有効スイッチ32がオンされている間、継続して実行される。
各ステップS30〜S38の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力(操作)がされたのと同様の処理を実行する(ステップS40)。
これにより、図5に示した処理と同様の効果を奏する。すなわち、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS40)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。すなわち、操作性が向上する。
以上の各ステップS30〜S40の処理は、電源がオンされている間、継続して実行される。各ステップS30〜S40の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する。
以上の処理によって検出有効スイッチ32がオンされている間だけ、カメラ本体12の動き/姿勢による操作入力が有効となり、ユーザが意図しない場合におけるカメラ本体12の動き/姿勢をユーザが意図した操作として誤認する不具合が防止される。
次に、CPU50の動き/姿勢入力処理の第2の実施の形態ついて説明する。本実施の形態では、単独の操作として認識可能なカメラ本体12の動き/姿勢を複数組み合わせた動き/姿勢の変化があった場合に、その変化が予め登録しているパターンと一致しているかを比較し、パターンと一致する場合には特殊な指示(特殊コマンド)と解釈する。例えば、図7に示すように、一定時間内において、カメラ本体12を押し下げる動作(同図(I))が行われた後、右に傾ける動作(同図(II)、(III))が2回行われた場合には、従来のキー操作における右キーを押し続ける操作と同等の操作が行われたと認識する。尚、この場合における信号出力回路92からのX軸、Y軸、Z軸の各方向の動き/姿勢の状態を示す信号として図8に示すような信号がCPU50に入力される。
また、他の例として、図9に示すように、一定時間内において、カメラ本体12を押し下げる動作(同図(I)、(III))と押し上げる動作(同図(II)、(IV))が2回繰り返された場合には、カメラの動作モードを撮影モードから再生モード、又は、再生モードから撮影モードに切り替えるコマンドを入力する操作が行われたと認識する。この場合における信号出力回路92からのX軸、Y軸、Z軸の各方向の動き/姿勢の状態を示す信号として図10に示すような信号がCPU50に入力される。
図11には、撮影モード時におけるコマンドの例が示されている。単独の操作として認識されるカメラ本体12の動き/姿勢として左に傾ける動作、右に傾ける動作、下に傾ける動作、上に傾ける動作、押し下げる動作、押し上げる動作を想定した場合を示しており、各動作をX(−)、X(+)、Y(−)、Y(+)、Z(−)、Z(+)で表している。同図(A)には単独の操作に対して入力される指示内容が示されており、例えば、カメラ本体12を下に傾けるとズームがワイド側に変化し、カメラ本体12を上に傾けるとズームがテレ側に変化する。
一方、同図(B)は、単独の操作を複数の組み合わせた操作によって入力される指示内容が示されており、操作(1)から操作(4)までに示された動き/姿勢でカメラ本体12を操作すると、各欄に示された指示内容が入力されると判断される。例えば、押し上げる動作、押し下げる動作、右に傾けける動作の順でカメラ本体12を操作すると、撮影モードと再生モードとが切り替わる。また、ユーザ設定動作と記載されている操作には、ユーザが所望の指示内容を割り当てることができるようになっている。
図12は、信号出力回路92の出力をリセットしない第1の態様でのCPU50の動き/姿勢入力処理について第2の実施の形態を示したフローチャートである。電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか否かを判定する(ステップS50)。NOと判定した場合には、この処理を繰り返す。
検出有効スイッチ32がオンされてステップS50でYESと判定した場合、CPU50は、そのとき信号出力回路92から取得した入力値を保持する(ステップS52)。尚、その入力値を変数lastとして保存する。
続いて一定時間待機する(ステップS54)。そして、信号出力回路92から新たな入力値を取得し、その入力値を保持する(ステップS56)。尚、その入力値を配列変数input[]の値として保存する。また、配列変数input[]の値として保存できる入力値の数を超えた場合に最も古い入力値を消去して新しい入力値を保存する。
次にCPU50は、ステップS52で保持した入力値(last)とステップS56で取得した最新の入力値(input[])とを比較する(ステップS58)。即ち、ステップS56で取得した最新の入力値(input[])からステップS52で保持した入力値(last)を引くことによって、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態としてその後のカメラ本体12の動き/姿勢の状態を示す値を求める。
次にCPU50は、ステップS58で比較して求めた値の大きさが所定の閾値以上か否かを判定する(ステップS60)。NOと判定した場合には、ステップS54に戻る。一方、YESと判定した場合には、カメラ本体12の動き/姿勢による操作が有効に行われたと判断し、過去の操作入力(動き/姿勢)のパターンが予め登録されているパターンと一致しているか否かを判定する(ステップS62)。
ステップS62でNOと判定した場合、単独の操作による指示の入力と判断し、その操作に割り当てられた指示に対応する処理を実行する(ステップS64)。
一方、ステップS62でYESと判定した場合には一致したパターンに割り当てられた指示(特殊コマンド)に対応する処理を実行する(ステップS66)。すなわち、ユーザの意図する入力を推測し、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS66)。これは、本発明のセンサ入力手段に相当する。
以上の各ステップS50〜S68の処理は、検出有効スイッチ32がオンされている間、継続して実行される(ステップS68:N)。
次いでCPU50は、検出有効スイッチ32がオフされたか否かを判定する(ステップS68)。NOと判定した場合には、ステップS54に戻る。一方、YESと判定した場合、または、各ステップS50〜S68の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力がされたのと同様の処理を実行する(ステップS69)。
これにより、図5に示した処理と同様の効果を奏する。すなわち、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS69)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。すなわち、操作性が向上する。
以上の各ステップS50〜S69の処理は、電源がオンされている間、継続して実行される。各ステップS50〜S69の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する(ステップS70:Y)。
図12と同様の動き/姿勢入力処理を、信号出力回路92の出力をリセットする第2の態様で行う場合には、図13に示すフローチャートのようになる。電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか否かを判定する(ステップS80)。NOと判定した場合には、この処理を繰り返す。
検出有効スイッチ32がオンされてステップS80でYESと判定した場合、CPU50は、信号出力回路92にリセット信号を出力して信号出力回路92の出力をリセットし、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態とした場合の入力値が信号出力回路92から得られるようにする(ステップS82)。
続いてCPU50は、信号出力回路92から新たな入力値を取得し、その入力値を保持する(ステップS84)。尚、その入力値を配列変数input[]の値として保存する。また、配列変数input[]の値として保存できる入力値の数を超えた場合に最も古い入力値を消去して新しい入力値を保存する。
そして、ステップS84で取得した最新の入力値(input[])が所定の閾値以上か否かを判定する(ステップS88)。NOと判定した場合には、ステップS84に戻る。一方、YESと判定した場合には、カメラ本体12の動き/姿勢による操作が有効に行われたと判断し、過去の操作入力(動き/姿勢)のパターンが予め登録されているパターンと一致しているか否かを判定する(ステップS90)。
ステップS90でNOと判定した場合、単独の操作による指示の入力と判断し、その操作に割り当てられた指示に対応する処理を実行する(ステップS92)。
一方、ステップS90でYESと判定した場合には一致したパターンに割り当てられた特殊な指示(特殊コマンド)に対応する処理を実行する(ステップS94)。すなわち、ユーザの意図する入力を推測し(ステップS90)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS92、S94)。これは、本発明のセンサ入力手段に相当する。そして、一定時間待機する(ステップS96)。
以上の各ステップS80〜S98の処理は、検出有効スイッチ32がオンされている間、継続して実行される(ステップS98:N)。
次いでCPU50は、検出有効スイッチ32がオフされたか否かを判定する(ステップS98)。NOと判定した場合には、ステップS84に戻る。一方、YESと判定した場合、または、各ステップS80〜S98の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力がされたのと同様の処理を実行する(ステップS99)。
これにより、図5に示した処理と同様の効果を奏する。すなわち、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS99)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。すなわち、操作性が向上する。
以上の各ステップS80〜S99の処理は、電源がオンされている間、継続して実行される。各ステップS80〜S99の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する(ステップS100:Y)。
次に、カメラ本体12の動き/姿勢の操作によって特殊コマンドを入力する場合に、予めコマンド入力モードに設定するようにした態様について説明する。図12又は図13に示した動き/姿勢入力処理では、一定時間以内に特殊コマンド入力の操作を行うことによって単独操作との区別を行うようにしたが、次の操作が特殊コマンドの入力のための操作であることを、コマンド入力モードへの移行により指定できるようにし、それによって単独操作との区別を行えるようにしてもよい。例えば、カメラ本体12のZ軸方向への移動が行われた場合や特別なスイッチを設けてそのスイッチが押された場合に、コマンドモードに移行することが考えられる。コマンド入力モードを設けた場合における動き/姿勢入力処理のフローチャートを図14に示す。尚、本フローチャートの処理は、信号出力回路92の出力をリセットする第2の態様で示す。電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか否かを判定する(ステップS110)。NOと判定した場合には、この処理を繰り返す。
検出有効スイッチ32がオンされてステップS110でYESと判定した場合、CPU50は、信号出力回路92にリセット信号を出力して信号出力回路92の出力をリセットし、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態とした場合の入力値が信号出力回路92から得られるようにする(ステップS112)。
続いてCPU50は、コマンド入力モードか否かを判定する(ステップS114)。コマンド入力モードか否かは、コマンド入力モードへの移行を指示する所定の操作が行われたか否かによって判断する。
ステップS114においてNOと判定した場合、CPU50は、信号出力回路92から入力値を取得する(ステップS116)。そして、その入力値が所定の閾値以上か否かを判定する(ステップS118)。NOと判定した場合には、ステップS114に戻る。一方、YESと判定した場合には、単独の操作による指示の入力と判断し、その操作に割り当てられた指示に対応する処理を実行する(ステップS120)。すなわち、ユーザの意図する入力を推測し(ステップS118)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS120)。これは、本発明のセンサ入力手段に相当する。そしてステップS136に移行する。
ステップS114においてYESと判定した場合、コマンド入力モードに移行し、CPU50は、信号出力回路92から入力値を取得する(ステップS122)。そして、その入力値が所定の閾値以上か否かを判定する(ステップS124)。NOと判定した場合には、ステップS122に戻る。一方、YESと判定した場合には、その入力値を保持する(ステップS126)。尚、その入力値を配列変数input[]の値として保存する。また、配列変数input[]の値として保存できる入力値の数を超えた場合に最も古い入力値を消去して新しい入力値を保存する。
次に、CPU50は、過去の操作入力(動き/姿勢)のパターンが予め登録されているパターンと一致しているか否かを判定する(ステップS128)。NOと判定した場合にはステップS122に戻る。一方、YESと判定した場合には一致したパターンに割り当てられた特殊な指示(特殊コマンド)に対応する処理を実行する(ステップS130)。すなわち、ユーザの意図する入力を推測し(ステップS128)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS130)。これは、本発明のセンサ入力手段に相当する。そして、コマンド入力モードが解除されたか否かを判定する(ステップS132)。尚、コマンド入力モードが解除されたか否かは、コマンド入力モードの解除を指示する所定の操作が行われたか否かによって判断する。
ステップS132でNOと判定した場合にはステップS122に戻る。一方、YESと判定した場合、即ち、ステップS122〜ステップS130においてコマンド入力モードが解除された場合には、ステップS134に移行し、信号出力回路92からの過去の入力値を破棄する(ステップS134)。そしてステップS136に移行する。
以上の各ステップS110〜S136の処理は、検出有効スイッチ32がオンされている間、継続して実行される(ステップS136:N)。
ステップS136に移行すると、CPU50は、検出有効スイッチ32がオフされたか否かを判定する(ステップS136)。NOと判定した場合には、ステップS114に戻る。一方、YESと判定した場合、または、各ステップS110〜S136の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力がされたのと同様の処理を実行する(ステップS137)。
これにより、図5に示した処理と同様の効果を奏する。すなわち、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS137)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。すなわち、操作性が向上する。
以上の各ステップS110〜S137の処理は、電源がオンされている間、継続して実行される。各ステップS110〜S137の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する(ステップS138:Y)。
次に動き/姿勢検出素子90として加速度検出素子と姿勢検出素子の両方を備え、カメラ本体12の動き(揺れ)により所定の指示を入力する操作と、カメラ本体12の姿勢(傾き)により所定の指示を入力する操作とを適切に認識するようにした第3の実施の形態について説明する。図15は、この場合におけるCPU50の動き/姿勢入力処理を示したフローチャートである。尚、本フローチャートでは信号出力回路92の出力をリセットしない第1の態様での処理を示す。電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか(押されているか)否かを判定する(ステップS150)。NOと判定した場合には、この処理を繰り返す。
検出有効スイッチ32がオンされてステップS150でYESと判定した場合、CPU50は、そのとき信号出力回路92から取得した入力値(傾き値)を保持する(ステップS152)。続いて、信号出力回路92から新たな入力値(カメラ本体12の傾きを示す傾き値及び加速度を示す加速度値)を取得する(ステップS154)。そして、加速度値が所定の閾値以上か否かを判定する(ステップS156)。
ステップS156でYESと判定した場合、CPU50は、カメラ本体12の動き(揺れ)による操作が行われたと判断し、その操作に対応する従来のキー入力に対する処理と同等の処理を実行する(ステップS158)。すなわち、ユーザの意図する入力を推測し(ステップS156)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS158)。これは、本発明のセンサ入力手段に相当する。そして、ステップS166に移行する。
一方、ステップS156でNOと判定した場合、CPU50は、ステップS154で保持した傾き値とステップS154で取得した傾き値とを比較する(ステップS160)。即ち、ステップS160で取り込んだ傾き値からステップS152で保持した傾き値を引くことによって、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態としてその後のカメラ本体12の傾きを示す値を求める。
次にCPU50は、ステップS160で比較して求めた傾き値の大きさが所定の閾値以上か否かを判定する(ステップS162)。NOと判定した場合には、ステップS154に戻る。一方、YESと判定した場合には、カメラ本体12の姿勢(傾き)による操作が有効に行われたと判断し、その操作に対応した従来のキー入力に対する処理と同等の処理を実行する(ステップS164)。すなわち、ユーザの意図する入力を推測し(ステップS156)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS164)。これは、本発明のセンサ入力手段に相当する。そして、ステップS166に移行する。
以上の各ステップS150〜S166の処理は、検出有効スイッチ32がオンされている間、継続して実行される(ステップS166:N)。
ステップS166に移行するとCPU50は、検出有効スイッチ32がオフされたか否かを判定する(ステップS166)。NOと判定した場合には、ステップS154に戻る。一方、YESと判定した場合、または、各ステップS150〜S166の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち、「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力がされたのと同様の処理を実行する(ステップS167)。
これにより、図5に示した処理と同様の効果を奏する。すなわち、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS167)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。
以上の各ステップS150〜S167の処理は、電源がオンされている間、継続して実行される。各ステップS150〜S167の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する(ステップS168:Y)。
尚、上記閾値は、ユーザが所望の値に変更できるようにしてもよい。例えば、閾値の設定時においてユーザがカメラ本体12を実際に動かしたときに検出された加速度に基づいて閾値を設定するようにしてもよいし、又は、所定のボタンをオンしたからオフするまでの間にカメラ本体12を動かし、そのとき検出された加速度を基準として閾値を設定するようにしてもよい。
以上、上記実施の形態において、カメラ本体12の動き/姿勢の操作の大きさに応じて信号出力回路92の出力の大きさが変化するようにし、その信号の大きさに応じてCPU50が操作の大きさも認識できるようにすることによって、操作の大きさに関連する処理の指示を行えるようにしてもよい。
また、上記実施の形態において、検出有効スイッチ32とOKスイッチ34とは別のスイッチとしたが、1つの多段スイッチによって検出有効スイッチとOKスイッチとを構成するようにしてもよい。また、その多段スイッチとして半押しと全押しが可能なレリーズスイッチ22を検出有効スイッチとOKスイッチとして使用してもよい。更に、第2の実施の形態や第3の実施の形態の動き/姿勢入力処理では、例えば検出有効スイッチ32を設けず、カメラ本体12の動き/姿勢による操作入力を常に有効とした場合であっても有効である。
次に、図16を参照しながらコマンド入力モードを設けた場合における動き/姿勢入力処理について説明する。この処理は図14に示したものとほぼ同様のものとなっている。
デジタルカメラ10においては、その主電源がオンされると、CPU50は、検出有効スイッチ32がオンされているか否か(例えば検出有効スイッチ32が一段目まで押し込まれているか否か)を判定する(ステップS170)。NOと判定した場合には、この処理を繰り返す。
検出有効スイッチ32がオンされてステップS170でYESと判定した場合、CPU50は、信号出力回路92にリセット信号を出力して信号出力回路92の出力をリセットし、検出有効スイッチ32がオンされたときのカメラ本体12の動き/姿勢の状態を基準状態とした場合の入力値が信号出力回路92から得られるようにする(ステップS172)。
次に、CPU50は、信号出力回路92から入力値を取得する(ステップS174)。そして、その入力値が所定の閾値以上か否かを判定する(ステップS176)。NOと判定した場合には、ステップS174に戻る。一方、YESと判定した場合には、CPU50は、コマンド入力モードか否かを判定する(ステップS178)。コマンド入力モードか否かは、コマンド入力モードへの移行を指示する所定の操作が行われたか否かによって判断する。
コマンド入力モードではないと判定されると(ステップS178:NO)、単独の操作による指示の入力と判断し、その操作に割り当てられた指示に対応する処理を実行する(ステップS180)。すなわち、ユーザの意図する入力を推測し(ステップS176、S178)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS180)。これは、本発明のセンサ入力手段に相当する。そしてステップS174に移行する。
一方、コマンド入力モードであると判定されると(ステップS178:YES)、信号出力回路92からの入力値を保持する(ステップS182)。すなわち、この入力値を配列変数input[]に保存する。また、配列変数input[]に保存できる入力値の数を超えた場合には、最も古い入力値を消去して新しい入力値を保存する。
次に、CPU50は、過去の操作入力(動き/姿勢)のパターン(配列変数input[]により表される)が予め登録されているパターンと一致しているか否かを判定する(ステップS184)。NOと判定した場合には、再度、信号出力回路92から入力値を取得し(ステップS186)、その入力値が所定の閾値以上か否かを判定し(ステップS188)、閾値以上であれば(ステップ188:YES)、ステップS182に戻り、同様の処理を繰り返す。
一方、ステップS184でYESと判定した場合には一致したパターンに割り当てられた特殊な指示(特殊コマンド)に対応する処理を実行する(ステップS190)。すなわち、ユーザの意図する入力を推測し(ステップS184)、その推測された入力を行い、さらにその入力に応じた処理を実行する(ステップS190)。これは、本発明のセンサ入力手段に相当する。
以上の各ステップS182〜S190の処理は、コマンド入力モードが解除されるまで継続して実行される。
コマンド入力モードが解除されると、信号出力回路92からの過去の入力値を破棄する(ステップS192)。そしてステップS174に移行する。尚、コマンド入力モードが解除されたか否かは、コマンド入力モードの解除を指示する所定の操作が行われたか否かによって判断する。
以上の各ステップS174〜S192の処理は、検出有効スイッチ32がオンされている間、継続して実行される。
各ステップS174〜S192の処理が実行されている最中に、検出有効スイッチ32がオフにされた場合(すなわち「無効」が選択された場合)、CPU50はこれを検出し、従来のキャンセルボタンによる入力がされたのと同様の処理を行う(ステップS194)。
これにより、図5に示した処理と同様の効果を奏する。すなわち、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(ステップS194)。すなわち、検出有効スイッチ32が従来のキャンセルボタンも兼ねる。
したがって、本実施形態のデジタルカメラ10においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とキャンセルボタンの操作)を行ったのと同様の結果を得ることが可能となる。
以上の各ステップS170〜S194の処理は、電源がオンされている間、継続して実行される。各ステップS170〜S194の処理が行われている最中に、電源スイッチがオフにされた場合、以上の処理を終了する。
次に、確認画面を表示する処理について説明する。
図17は、確認画面を表示する処理について説明するためのフローチャートである。
上記各例においては、ユーザの意図する入力を推測し(図5におけるステップS16等)、その推測された入力を行い、さらにその入力に応じた処理を実行するように説明した(図5におけるステップS18等)。しかしながら、この推測がいつも正しいとは限らない。デジタルカメラ10の動きや姿勢によってはユーザの意図せぬ入力が推測されることもあり得る。そこで、図17に示すように、確認画面を表示し、ユーザの意図する入力であるとの確認が得られた場合にのみ、その入力を行う。
以下、図17に示す処理の内容を説明する。
この処理は、例えば、図5に示した処理に適用できる。この場合、確認画面を表示する処理は、従来のキー入力と同等の動作(ステップS18)の前に実行される。
まず、信号出力回路92からの入力が閾値以上か否かを判定し(ステップS200)、閾値以上であると判定されれば(ステップS200:閾値以上)、確認画面表示を表示させるか否かを判定する(ステップS202)。例えば、確認画面表示フラグがセット(有効)されているか否かを判定する。確認画面を表示させると判定されると(ステップS202:有効)、例えば、図18に示すような確認画面を表示する(ステップS204)。この確認画面はセンサ入力機能による入力によりこれから実行しようとしている処理(図18ではセルフタイマー機能を例示)を表す表示を含む。この確認画面が表示されている状態で、センサ入力機能によるOKの入力(または従来のキーによるOKの入力)を行うと(ステップS206:OK)、ユーザの意図する入力であるとして、その操作に対応した従来のキー入力に対する処理と同等の処理を実行する(ステップS208)。
以上のように確認画面を表示するようにすれば、確認画面によってユーザの意図する入力であるとの確認が得られた場合にのみ、その入力を行うことになるから、ユーザの意図しない入力が行われること、これにより予期せぬ処理が行われること、を防止することが可能となる。
なお、確認画面を表示する処理は、例えば、図6、図12、図13、図14、図15、図16に示した処理にも、図5と同様に適用できる。
図6に示した処理においては、確認画面を表示する処理は、「従来のキー入力と同等の動作」の前に実行される。図12、図13、図14に示した処理においては、確認画面を表示する処理は、「単独入力の処理」の前、「特殊コマンドの処理」の前にそれぞれ実行される。図15に示した処理においては、確認画面を表示する処理は、「傾き(姿勢)による操作処理」の前、「揺れ(動き)による操作の処理」の前にそれぞれ実行される。図16に示した処理においては、確認画面を表示する処理は、「単独入力動作」の前、「特殊コマンド動作」の前にそれぞれ実行される(図19参照)。
次に変形例について説明する。
上記各実施形態においては、検出有効スイッチ32によって「無効」を選択したことをもって従来のキャンセルボタンを操作したのと同様に扱う(例えば図5におけるステップS20)ように説明したが、本発明はこれに限定されない。
例えば、検出有効スイッチ32によって「無効」を選択したことをもって従来のOKボタンを操作したのと同様の扱いをするようにしてもよい。
例えば、センサ入力手段を使ってメニュー項目を最下層まで降りて最終的な項目に達した状況を想定する。
この場合、その最終的な項目を確定的に選択しその項目応じた処理を実行するには、センサ入力手段による入力がその項目に応じた処理に影響を与えないようにするべく検出有効スイッチ32によって「無効」を選択し、さらに最終的な項目を確定的に選択するべくOKボタン(図示せず)を操作する。すなわち、上記スイッチによる「無効」の選択とOKボタンの操作の二つの動作を行う。
しかしながら、この変形例においては、検出有効スイッチ32によって「無効」を選択したことをもって従来のOKボタンを操作したのと同様の扱いをする。すなわち、検出有効スイッチ32が従来のOKボタンも兼ねる。
したがって、この変形例においては、従来とは異なり、一つの動作(スイッチ32による「無効」の選択)で二つの動作(スイッチ32による「無効」の選択とOKボタンの操作)を行ったのと同様の結果を得ることが可能となる。すなわち、操作性が向上する。
なお、推測された入力を行った後(例えば図5におけるステップS18の後)にユーザが期待している動作か否かについて確認するための確認画面を表示するようにすることも考えられる。このようにすれば、推測された入力を行った後にユーザが期待している動作か否かについて確認することが可能となる。
また、スイッチ32によってセンサ入力機能の有効が選択されている間、センサ(動き/姿勢検出素子90、加速度検出素子120、姿勢検出素子122等)からの出力に基づいて推測された入力が一定時間無いか、または一定時間入力が定まらない場合、センサ入力機能による入力(推測等)を行わないようにすることも考えられる。このようにすれば、省電力に寄与する。
上記実施形態はあらゆる点で単なる例示にすぎない。これらの記載によって本発明は限定的に解釈されるものではない。本発明はその精神または主要な特徴から逸脱することなく他の様々な形で実施することができる。
例えば、上記実施の形態では、本発明をデジタルカメラに適用した場合を例に説明したが、本発明の適用は、これに限定されるものではない。銀塩カメラやビデオカメラ、カメラ付き携帯電話機、ゲーム装置等にも同様に適用することができる。
10…デジタルカメラ、12…カメラ本体、14…撮影レンズ、22…レリーズスイッチ、24…電源スイッチ、30…液晶モニタ、32…検出有効スイッチ、34…OKスイッチ、50…CPU、52…操作部、54…ROM、56…EEPROM、58…メモリ、60…VRAM、62…撮像素子、64…タイミングジェネレータ、66…アナログ信号処理回路、68…A/D変換器、70…画像入力コントローラ、72…画像信号処理回路、74…圧縮・伸張処理回路、84…AF検出回路、90…動き/姿勢検出素子、92…信号出力回路、120…加速度検出素子、122…姿勢検出素子