説明

撮像装置、及びその制御方法とそのプログラム

【課題】 測位の誤差により、算出された位置情報が、実際の撮影位置から大きく離れた位置を示す場合がある。
【解決手段】 画像データを取得する指示を受け付けた場合第1の位置情報を取得する手段と、画像データと第1の位置情報とを対応付ける手段と、前記画像データを取得するための準備動作を行う指示が受け付けられた後でありかつ前記画像データを取得する指示が受け付けられる前に複数の第2の位置情報を取得する手段と、前記複数の第2の位置情報に基づき第3の位置情報を取得する手段と、前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れている場合は、ユーザにその旨を通知する通知手段を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置情報を取り扱い可能な撮像装置、及びその制御方法とそのプログラムに関するものである。
【背景技術】
【0002】
近年、デジタルカメラ等の電子機器において、GPS(Global Positioning System)等の位置情報を取得できる装置により、撮影された画像データに位置情報を撮影位置として対応付ける技術が提案されている(特許文献1参照)。このように、画像データに撮影位置を対応付けることによって、画像データを再生する際に、撮影した場所を知ることができる。しかしながら、実際に画像データを撮影した位置と画像データに対応付けされた位置情報が示す位置との間に予期せぬ誤差が生じる場合がある。例えば、GPSは複数の衛星から電波を受信して位置情報を算出している。その際、電離層や対流圏での電波特性の変化により電波伝播速度の遅延の影響や、ビル等による電波の反射の影響を受ける。これらの影響により、実際の撮影位置から大きく離れた位置を示す位置情報が画像データに対応付けられることがあった。
【0003】
特許文献2では、このような課題に対して、画像に対応付けされた位置情報の誤差を補正する手法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−20166公報
【特許文献2】特開2007−274245公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献2に記載の発明では位置情報の誤差をユーザが手動で補正するものであった。すなわち、画像データに対応付けられた位置情報に誤差があるのかは、ユーザが一つ一つの画像データに対応づけられた位置情報を確認して判断しなくてはならず、煩雑であった。
【0006】
本発明は、このような問題を鑑みてなされたものであり、位置情報に誤差がある可能性をユーザに知らせることを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の撮像装置は、被写体を撮像して画像データを取得する撮像手段と、前記撮像手段により画像データを取得するための準備動作を開始する指示を受け付ける第1の撮像指示受け付け手段と、前記撮像手段により画像データを取得する指示を受け付ける第2の撮像指示受け付け手段と、前記第2の撮像指示受け付け手段により指示を受け付けた場合、第1の位置情報を取得する第1の位置取得手段と、前記撮像手段により取得した画像データと、前記第1の位置情報とを対応付けて記録媒体に記録する対応付け手段と、前記第1の撮像指示受け付け手段により指示が受け付けられた後であり、かつ前記第2の撮像指示受け付け手段により指示が受け付けられる前に、複数の第2の位置情報を取得する第2の位置取得手段と、前記複数の第2の位置情報に基づき、第3の位置情報を取得する第3の位置取得手段と、前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れているか否かを判断する判断手段と、前記判断手段により前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れていると判断された場合は、ユーザにその旨を通知する通知手段を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、ユーザは、画像データに対応付けるための位置情報に誤差が生じている可能性があることを知ることができる。
【図面の簡単な説明】
【0009】
【図1】本発明におけるデジタルカメラのブロック図の一例である。
【図2】第1の実施形態におけるデジタルカメラの動作を示すフローチャートである。
【図3】第2の実施形態におけるデジタルカメラの動作を示すフローチャートである。
【図4】第3の実施形態におけるデジタルカメラの動作を示すフローチャートである。
【図5】平均位置の算出方法の一例を説明するための図である。
【発明を実施するための形態】
【0010】
以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
【0011】
尚、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態は適宜組み合わされることも可能である。
【0012】
[第1の実施形態]
本実施形態では、本発明が適用される撮像装置について述べる。
【0013】
はじめに、本実施形態の、測位装置を備えた撮像装置の一例である、GPSを備えたデジタルカメラについて説明する。該デジタルカメラの構成を図1に示す。
【0014】
デジタルカメラ100において、中央演算装置(CPU)101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、デジタルカメラ100の制御は本実施形態のCPU101のように一つのハードウェアが行ってもよいし、複数のハードウェアが処理を分担することで、装置全体の制御を行ってもよい。
【0015】
撮像部102は撮影処理を行う。撮影処理とは、撮像部102に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する処理である。また、この撮影処理を行うための準備動作も、CPU101が後述するプログラムに従って撮像部102を制御することにより実行される。準備動作はレンズの焦点を被写体に合わせるAF(オートフォーカス)処理、被写体輝度を演算するAE(自動露出)処理、ホワイトバランスを適正な値にするAWB(オートホワイトバランス)処理、適切に調光するためのEF(フラッシュプリ発光)処理を含む。
【0016】
不揮発性メモリ103は電気的に消去・記録可能なメモリであり、例えばEEPROMで構成される。不揮発性メモリ103は、デジタルカメラ100の各部を制御するためのプログラム(ファームウェア)や各種の設定情報を記憶している。後述する各フローチャートに示す処理をCPU101の制御により実行するためのプログラムも、この不揮発性メモリ103に記録されている。
【0017】
作業用メモリ104は、不揮発性メモリ103に保存されているプログラムを、展開・実行するためのメモリである。作業用メモリ104はCPU101のワークエリアとして使用される。
【0018】
表示部105は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部105はデジタルカメラ100が備える必要はなく、デジタルカメラ100は表示部105と接続することができ、表示部105の表示を制御する表示制御機能を少なくとも有していればよい。
【0019】
操作部106はユーザがデジタルカメラの動作を指示するために用いられる。操作部106は、例えば、デジタルカメラの電源のON/OFFを指示するための電源ボタンや、撮影した画像データを閲覧するための指示を受け付ける再生ボタン等の操作部材を含むよう構成される。さらに操作部106は、撮影指示を行うためのレリーズスイッチを含む。レリーズスイッチは、操作途中いわゆる半押しでONとなるSW1と、操作完了いわゆる全押しでONとなるSW2を含む。SW1がONとなった場合、前述の準備動作のうちAF処理、AE処理、AWB処理が開始される。SW2がONとなった場合、EF処理及び撮影処理が開始される。
【0020】
記録媒体107には、撮像部102から出力された画像データや、後述のGPS108にて取得した位置情報を記録することができる。また、本実施形態で扱う画像データは、ヘッダ領域に属性情報として位置情報を記録することができるよう構成される。例えば画像データは、Exif形式のようなデータ構造で構成される。記録媒体107は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体107にアクセスする手段を有していればよい。
【0021】
GPS108は、測位処理を行う。測位処理とは、GPS衛星から信号を受信し、受信した信号からGPS108の位置情報を取得する処理である。GPS108で取得された位置情報は、画像データに対応づけて記録することができる。本実施形態では、位置情報は、緯度・経度の座標で表される。なお、本実施形態ではGPSを用いたが、必ずしもGPSには限定されず、例えば携帯電話の基地局といった外部装置や加速度センサなどから位置情報を取得する装置であってもよい。また、GPS108はデジタルカメラ100に着脱可能でも、内蔵されていてもよい。つまり、デジタルカメラ100は、少なくとも位置情報を取得する機能を備えていればよい。
【0022】
計時部110は、必要に応じて計時を行う。
【0023】
以上が、本実施形態におけるデジタルカメラの構成である。
【0024】
次に、本実施形態におけるデジタルカメラの動作について説明する。本実施形態のデジタルカメラでは、画像に対応付けるための位置情報に対して、自動的に誤差判定を行う。その結果、画像データに対応づけるための位置情報の誤差が大きいと判断された場合は、その旨をユーザに通知する。誤差判定については後述する。このような処理を行うデジタルカメラの動作を示すフローチャートを、図2に示す。
【0025】
図2のフローチャートの各ステップに示す処理は、CPU101が、不揮発性メモリ103に保存されているプログラムを読み出し、作業用メモリ104に展開してプログラムに従いデジタルカメラ100の各部を制御することで実現される。以降のフローチャートに示す各処理についても同様である。また、このフローチャートに示す処理は、レリーズスイッチのSW1がONとなることに応じて開始される。SW1は、第1の撮像指示受け付け手段の一例である。
【0026】
まず、ステップS201にて、CPU101は、撮像部102に電源を供給して起動する。既に撮像部102が起動している場合は、この処理は行わずに次のステップに移る。
【0027】
次に、ステップS202〜ステップS204にて、CPU101は撮影処理のための準備動作を行う。具体的には、ステップS202にて、CPU101は、撮像部102に含まれるレンズの焦点を被写体に合わせるAF処理を行う。ステップS203では、CPU101は、被写体輝度を演算するAE処理を行う。ステップS204では、CPU101は、ホワイトバランスを適正な値にするAWB処理を行う。
【0028】
本実施形態のデジタルカメラ100は、次のステップS205にて、CPU101はGPS108により所定の回数だけ測位処理を行い、複数の位置情報を取得する。ここでは、3回測位処理を行い、3つの位置情報を取得する。本実施形態では、位置情報は緯度・経度の座標で表される。このステップにて取得される位置情報は、第2の位置情報の一例であり、このステップの処理は、第2の位置取得手段の一例である。
【0029】
次にステップS206にて、CPU101は、ステップS205にて取得した複数の位置情報から平均位置を算出する。具体的には、CPU101は、ステップS205にて取得した3つの位置情報の緯度の値の平均値および経度の値の平均値を求め、それぞれの平均値を緯度・経度の座標としてもつ位置情報を、平均位置として算出する。また、平均位置は第3の位置情報の一例であり、このステップの処理は、第3の位置取得手段の一例である。
【0030】
ここで、図5を用いて算出方法の一例を説明する。図5おいて、縦軸は緯度方向、横軸は経度方向を示す。ステップS205にて取得されたそれぞれの位置情報の座標を(X1,Y1)、(X2,Y2)、(X3,Y3)とし、この3つの座標から求められる平均位置の座標を(AVEX,AVEY)とする。この場合、平均位置の座標は、AVEX=(X1+X2+X3)/3及びAVEY=(Y1+Y2+Y3)/3から求めることができる。
【0031】
図2の説明に戻る。このステップの処理にて算出された平均位置は、不揮発性メモリ103に一旦保存される。ここで保存された平均位置は、後述する誤差判定に用いられる。なお、ステップ205およびステップS206の処理は、必ずしも前述のステップS201〜ステップS204の処理の後に実行する必要はない。例えば、ステップ205およびステップS206の処理は、ステップS201〜ステップS204の処理の前に実行しても、ステップS201〜ステップS204の処理と並行して実行してもよい。すなわち、ステップS205及びステップS206の処理はSW1の押下に応じて開始されるよう制御されればよい。
【0032】
次に、ステップS207にて、CPU101は、レリーズスイッチのSW2がONとなっているか否かを判断する。すなわち、CPU101は画像データを撮影して取得する指示を受け付けたか否かを判断する。CPU101が、SW2がOFFとなっていると判断した場合、すなわち画像データを撮影して取得する指示を受け付けていないと判断した場合、処理はステップS208に進む。CPU101が、SW2がONとなっていると判断した場合、すなわち画像データを撮影して取得する指示を受け付けたと判断した場合、処理はステップS209に進む。このステップの処理は、前述のステップS201〜ステップS206の処理と並行して実行される。また、このステップの処理は第2の撮像指示受け付け手段の一例である。
【0033】
なお、このステップS207においてCPU101が、ステップS201〜ステップS206における処理の実行中にSW2がOFFであると判断した場合は、実行中の処理と並行してステップS208の処理を実行する。一方、CPU101が、ステップS201〜ステップS205の処理中にSW2がONとなったと判断した場合、すなわち測位回数が所定の回数に達しないうちにSW2がONとなったと判断された場合は、実行中の処理を中止し、処理はステップS209へ移る。そしてステップS209〜ステップS210と並行して、SW2がONとなった時点で既に取得されている位置情報の平均位置を取得する。ここで、ステップS205にて位置情報が一つだけ取得されている場合は、CPU101はその位置情報を平均位置とする。ステップS205にて位置情報が一つも取得されていない場合、すなわちSW2がONとなったと判断されたタイミングが、ステップS201〜ステップS204の処理中やステップS205での最初の測位処理中であった場合は、平均位置は取得されない。また、ステップS206における平均位置の算出中にSW2がONとなったとCPU101が判断した場合は平均位置の算出を継続し、ステップS206の処理は後述のステップS209〜ステップS210と並行して実行される。
【0034】
ステップS208では、CPU101は、レリーズスイッチのSW1がONとなっているか否かを判断する。すなわち、CPU101は、ユーザによりレリーズスイッチが半押しされた状態であるか否かを判断する。CPU101が、SW1がOFFとなっていると判断した場合、すなわちレリーズスイッチが半押しされた状態でないと判断した場合、本処理を終了する。一方、CPU101が、SW1がONとなっていると判断した場合、すなわちレリーズスイッチが半押しされた状態であると判断した場合、ステップS206に戻る。このステップの処理も、ステップS207と同様に、ステップS205及びステップS206と並行して実行される。
【0035】
ステップS209では、CPU101は適切に調光するためのEF処理を行う。
【0036】
EF処理が完了すると、ステップS210にて、CPU101は撮影処理を行い、画像データを取得する。
【0037】
次に、ステップS211にて、CPU101は、ステップS210にて得られた画像データに対応付けるための位置情報をGPS108により取得する。なお、このステップS211の処理は、ステップS209及びステップS210の処理の前に行っても、ステップS209及びステップS210の処理と並行して行ってもよい。すなわち、ステップS211の処理は、SW2の押下に応じて開始されるよう制御されればよい。また、このステップにて取得された位置情報は第1の位置情報の一例であり、このステップの処理は、第1の位置取得手段の一例である。
【0038】
次いで、ステップS212にて、CPU101は、ステップS206などで予め取得しておいた平均位置と、ステップS211にて取得した位置情報とに基づいて誤差判定を行う。具体的には、CPU101は、ステップS206にて取得した平均位置を不揮発性メモリ103から読み出し、該平均位置の座標とステップS211にて取得した位置情報の座標から、両位置間の距離を誤差として算出する。前記距離をD、平均位置の座標を(AVEX,AVEY)とし、ステップS211にて取得した位置情報の座標を(X4,Y4)とすると、距離Dは、D=√{(X4−AVEX)^2+(Y4−AVEY)^2}のように求められる。そして、前記距離が所定の閾値以上であるか否かを判断する。すなわち、画像データに対応付けるための位置情報が示す位置と、平均位置が示す位置とが、所定の距離以上離れているか否かを判断する。
【0039】
CPU101が、前記距離が所定の閾値未満であると判断した場合は、誤差が小さいと判断する。この場合、処理はステップS213に進む。ステップS213では、CPU101は、前記画像データに対応付けるための位置情報をステップS210にて取得した画像データに対応付ける。その後、処理はステップS217に進む。
【0040】
一方、CPU101が、前記距離が所定の閾値以上であると判断した場合は、誤差が大きいと判断する。この場合、処理はステップS214に進む。ステップS214では、CPU101は、ステップS211にて取得された位置情報に誤差が生じている可能性がある旨をユーザに通知する。例えば、表示部105に、「測位誤差が大きい可能性があります」というメッセージを表示する。
【0041】
次いで、ステップS215では、CPU101は、ステップS212にて誤差が大きいと判断された位置情報をステップS210にて取得された画像データに対応づけるか否かを選択する指示を受け付ける処理を実行する。また、該指示を受け付ける処理と並行して、例えば「位置情報を画像に付加しますか?」というメッセージとともに「はい」・「いいえ」などのボタンを表示部105に表示し、ユーザに選択を促す。ユーザは操作部106を介して、「はい」・「いいえ」のボタンを選択することにより、位置情報を画像データに対応づけるか否かを選択することができる。ステップS215にて、CPU101が、位置情報を画像データに対応づける指示を受け付けたと判断した場合、処理はステップS213に進む。一方、CPU101が、位置情報を画像データに対応づけない指示を受け付けた場合、処理はステップS216に進む。このステップの処理は、選択受け付け手段の一例である。
【0042】
ステップS216にてCPU101は、ステップS210にて取得した画像データに、測位の誤差のため位置情報を対応付けることができなかった旨を示すフラグを立てる。具体的には、画像データのヘッダ領域の一部を、該画像データには測位の誤差のため位置情報を対応付けることができなかったか否かを示す値を記録するための領域として用いる。そして、この領域に記録される値は初期状態を0とし、本ステップの処理にて1が設定されることによりフラグが立てられる。すなわちフラグが立てられた画像データは、測位の誤差のため位置情報を対応づけられなかった画像データである。このフラグは、位置情報が対応付けられていない画像データのうち、位置情報を対応付ける予定であったが対応付けできなかった画像データを検索するため等に用いることができる。なお、上述のステップS211〜ステップS216の処理は、ステップS206にて平均位置が算出されていない場合は行われない。ステップS206にて平均位置が算出されていない場合は、処理はステップS210からステップS217に移る。
【0043】
最後に、ステップS217にて、CPU101は、ステップS210にて取得された画像データを記録媒体107に記録し、本処理は終了する。
【0044】
以上が、本実施形態における撮像装置の動作の説明である。上述のように本実施形態の撮像装置では、画像データに対応付けるための位置情報に対して、自動的に誤差判定を行い、誤差が大きいと判断された場合はその旨をユーザに通知するよう構成した。これにより、ユーザは撮影した画像データに対応づけるために取得した位置情報がずれている可能性があるということを認識できる。さらに、誤差が大きいと判断された位置情報はユーザの選択により画像データに対応づけるか否かが決定されるため、誤差が大きい可能性のある位置情報がユーザの許可なく画像データに対応付けられることを防ぐことができる。また、誤差が大きいと判断されたために位置情報が画像データに対応付けされない場合には、該画像データにはその旨を示すフラグを立てる。このため、位置情報が対応付けられていない画像データのうち、位置情報を対応付けるはずだった画像データと、もともと位置情報を対応付けしない画像データとを区別することができる。これにより、例えば後から位置情報を対応付ける際に、該フラグを参照することで位置情報を対応付けしたい画像のみを検索することができる。
【0045】
[第2の実施形態]
第1の実施形態では、画像データに対応づけるための位置情報に誤差が生じていると判断された場合、その誤差が偶然生じてしまったものであっても、以降の処理に進んでしまっていた。しかし、このような偶然生じた誤差は、再度測位処理を行うことによって適切な位置情報を取得できる可能性がある。そこで本実施形態では、SW2がONとなってから一定時間以内であれば、画像データに対応づけるための位置情報に誤差が生じていると判断された場合に、画像データに対応付けるための位置情報を取得しなおし、再度誤差判定を行う場合について述べる。
【0046】
本実施形態は、第1の実施形態および第2の実施形態と共通する部分が多いため、本実施形態に特有の部分を中心に説明する。
【0047】
まず、本実施形態における撮像装置の動作について、図3を用いて説明する。
【0048】
図3は、本実施形態における撮影の際の、デジタルカメラ100の動作を示すフローチャートである。このフローチャートに示す処理は、レリーズスイッチのSW1がONとなることに応じて開始される。
【0049】
ステップS301からステップS308までの処理は、図2のステップS201からステップS206までの処理と同様であるため説明は省略する。
【0050】
まず、SW2がONとなることに応じて開始されるステップS309の処理では、CPU101は計時部110により計時を開始する。これにより、SW2がONとなってからの経過時間を測る。
【0051】
次に、ステップS310〜ステップS314では、図2のS209〜ステップS213と同様の処理を行う。
【0052】
ステップS313の誤差判定にて、CPU101が、ステップS312にて取得された位置情報の誤差が大きいと判断した場合、処理はステップS315に進む。ステップS315では、CPU101は、ステップS309にて計時が開始されてから一定時間が経過しているか否かを判断する。ここで、一定時間とは予め設定されている値により定められる。この値は不揮発性メモリ103に保存されている。なお、この値にはユーザがSW2をONにすることで撮影指示を行ってから移動し始めるまでの時間よりも短いと予想される時間を定める値が設定されていることが望ましい。これは、ユーザが移動を開始してしまっては、後述する処理にて画像データに対応づけるための位置情報を取得しなおす位置が、実際の撮影位置とずれてしまうためである。つまり、このステップの処理にて、CPU101は、デジタルカメラ100のユーザが撮影後に移動を開始している可能性が高いか否かを判断している。
【0053】
CPU101が、SW2がONとなってから一定時間以内でないと判断した場合は、ユーザは移動を開始している可能性が高いと判断する。したがって、処理はステップS316に進む。ステップS316以降の処理は、図2のステップS214以降の処理と同様であるため説明は省略する。
【0054】
一方、ステップS315にて、CPU101が、SW2がONとなってから一定時間以内であると判断した場合は、ユーザは移動を開始していない可能性が高いと判断する。したがって、処理はステップS312に戻り、CPU101は画像に対応付けるための位置情報を再度取得しなおす。
【0055】
続くステップS313では、ステップS312にて取得しなおした位置情報に対して再度誤差判定を行う。この際に用いられる平均位置は、既にステップS306にて算出された平均位置を用いる。ステップS313にて誤差が大きいと判断された場合は、上記の位置情報を取得しなおし、誤差判定を再度行う処理を繰り返す。一方、ステップS313にて、誤差が小さいと判断された場合、ステップS314にて画像データに位置情報を対応づけ、ステップS319にて画像データを記録媒体107に記録し、処理を終了する。
【0056】
以上が、本実施形態における撮像装置の動作の説明である。上述のように、第3の実施形態では、誤差判定により誤差が大きいと判断されても、SW2がONとなってから一定時間以内であれば、画像に対応付けるための位置情報を取得しなおし、再度誤差判定を行うよう構成した。これにより、誤差の大きな位置情報が偶然取得されてしまった場合でも、適切な位置情報を再度取得しなおすことが可能となる。
【0057】
[第3の実施形態]
前述した第1の実施形態および第2の実施形態では、SW1がONとなるたびに平均位置を算出するために複数回測位処理を行っていた。しかし、測位処理はある程度の時間がかかり、また電力の消費量も比較的多いため、SW1がONとなるたびに、毎回複数回測位処理を行うのは効率が良くない。例えば、ユーザがレリーズスイッチを半押しすることに応じて、複数回測位処理を行い得られた位置情報から平均位置が算出される。その後、ユーザが、レリーズスイッチを全押しすることなく手を離し、さらにその後、ユーザがほとんど移動せずにもう一度レリーズスイッチを半押しする、といった操作が行われることは少なくない。この場合、一度目のレリーズスイッチの半押しによりSW1がONとなることに応じて取得される複数の位置情報及び平均位置は、二度目のレリーズスイッチの半押しに応じて取得される複数の位置情報及び平均位置とほぼ変わらない。このように、同じ位置で何度もSW1がONとなるたびに複数回の測位処理を行うという構成は、無駄な処理時間および無駄な電力消費量の増加を招く一因となる。
【0058】
これに対し、本実施形態では前回の撮影から一定時間以内であれば、ユーザが移動していないと判断し、新たに平均位置を取得しないよう構成する場合について述べる。この場合、誤差判定には前回取得した平均位置を用い、新たに複数の位置情報を取得しない。したがって、複数回測位処理を行うための処理時間及び電力消費量が削減されることとなる。
【0059】
本実施形態は、第1の実施形態および第2の実施形態と共通する部分が多いため、本実施形態に特有の部分を中心に説明する。
【0060】
図4は、本実施形態における撮影の際の、デジタルカメラ100の動作を示すフローチャートである。このフローチャートに示す処理は、レリーズスイッチのSW1がONとなることに応じて開始される。
【0061】
本フローチャートにおける処理では、最後のステップS422にてCPU101が、計時部110により第2の計時を開始するよう制御する。第2の計時は本処理が終了しても継続され、次にレリーズスイッチが押下されて本フローチャートが実行された場合でも、各ステップの処理と並行して実行される。なお第2の計時が継続されている場合、ステップS422にて改めて計時を開始することはしない。また、第2の計時は後述のステップS411にて開始される第1の計時とは独立して実行される。ステップS412にて開始される第1の計時とは、第2の実施形態にて説明した図3におけるステップS310の計時と同様の処理である。本実施形態では、ステップS412の計時とステップS422の計時とを区別するためにそれぞれ第1の計時、第2の計時と呼ぶ。以下の説明では、前回の撮影にてステップS422の処理が実行されていることを考慮して説明する。
【0062】
ステップS401〜ステップS404の処理は、図3のステップS301〜ステップS304の処理と同様のため説明は省略する。
【0063】
ステップS405にて、CPU101は、前回取得した平均位置が、不揮発性メモリ103に保存されているか否かを判断する。CPU101が、前回取得した平均位置が不揮発性メモリ103に保存されていると判断した場合、処理はステップS406に進む。CPU101が、前回取得した平均位置が不揮発性メモリ103に保存されていないと判断した場合、処理はステップS407に進む。
【0064】
ステップS406では、CPU101は、第2の計時が開始されてから、一定時間経過しているか否かを判断する。即ち、前回の撮影から一定時間経過しているか否かを判断する。この場合の一定時間は、ユーザが前回の撮影を行ってから移動を開始すると考えられるタイミングまでの時間よりも短い時間が設定されていることが望ましい。なぜなら、ユーザが移動を開始していなければ、今回取得される平均位置と前回取得された平均位置とはどちらも同じ場所で取得されることになるからである。この場合、今回取得される平均位置と前回取得された平均位置とを等しいとみなすことができ、前回取得した平均位置を用いて誤差判定を行うことができる。つまり、本ステップの処理にてCPU101は、前回取得した平均位置が今回の誤差判定に用いることができるか否かを判断する。
【0065】
CPU101が前回の撮影から一定時間経過していると判断した場合は、デジタルカメラ100のユーザは前回の撮影位置から移動している可能性があるため、前回の平均位置を使って誤差判定をすることはできないと判断される。したがって処理はステップS407に進み、新たに位置情報を取得する。一方、CPU101が、前回の撮影から一定時間経過していないと判断した場合は、デジタルカメラ100のユーザは前回の撮影位置から移動していない可能性があるため、新たに算出される平均位置は前回算出された平均位置とあまり変わらないと判断できる。そのため、前回の撮影にて取得した平均位置を誤差判定に用いることができると判断される。この場合は、新たに平均位置を算出する必要も、新たに平均位置を算出するための位置情報を取得する必要もない。したがって、ステップS407およびステップS408の処理は行われることなく、ステップS409に進む。
【0066】
ステップS407では、図3のステップS305と同様に、CPU101がGPS108により複数の位置情報を取得する。次いで、ステップS408にてCPU101は、図3のステップS306と同様に、ステップS407にて取得した複数の位置情報から平均位置を取得し、不揮発性メモリ103に記録する。この際、不揮発性メモリ103に前回の平均位置が記録されていた場合は上書きする。ここで記録された平均位置は、本処理が終了しても消去されない。その後、処理はステップS409に進む。なお、ステップS405〜ステップS408の処理は、ステップS401〜ステップS404の処理と並行して実行されてもよい。
【0067】
ステップS409にてCPU101は、SW2がONであるか否かを判断する。CPU101が、SW2がOFFであると判断した場合、処理はステップS410に進む。ステップS410では、図3のステップS308と同様の処理を行う。なお、ステップS409およびステップS410の処理は、ステップS405〜ステップS408の処理と並行して実行される。
【0068】
一方、ステップS409にてCPU101が、SW2がONであると判断した場合、処理はステップS411に進む。ステップS411〜ステップS414の処理は、図3のステップS309〜ステップS312の処理と同様であるため説明は省略する。
【0069】
次いで、ステップS415にて、CPU101は、図3のステップS313と同様の処理を行う。すなわち、平均位置を不揮発性メモリ103から取得し、ステップS414にて取得した位置情報に対して誤差判定を行う。ここで、ステップS406の処理にて前回の平均位置を用いることができると判断されている場合は、不揮発性メモリ103には、前回取得された平均位置が記録されている。そのため、該前回の平均位置を用いて誤差判定を行うこととなる。それ以外の場合は、ステップS408にて算出された平均位置を用いて誤差判定を行うこととなる。
【0070】
ステップS417〜ステップS421の処理は、図3のステップS315〜ステップS319の処理と同様であるため説明は省略する。
【0071】
ステップS422では前述したように、CPU101は計時部110により第2の計時を開始し、本処理を終了する。
【0072】
以上が、本実施形態におけるデジタルカメラの動作の説明である。上述のように、第3の実施形態では、前回の撮影から一定時間以内であれば、前回取得した平均位置を用いて誤差判定を行う。これにより前回の撮影から一定時間以内では新たに平均位置を算出する必要が無くなり、平均位置のために新たに複数の位置情報を取得する必要もなくなる。つまり、無駄な処理時間や無駄な消費電力を低減することができる。
【0073】
[その他の実施形態]
なお、平均位置や、平均位置を算出するために取得した複数の位置情報も画像データに対応づけるよう構成してもよい。これにより、例えば手動で画像データに位置情報を対応づける場合に、誤差判断に用いた平均位置や、平均位置を算出するために取得された位置情報が示す位置を参照しながら修正することができる。
【0074】
また、上述の実施形態では、SW2がONとなる前に、測位処理が所定の回数に達した場合、所定の回数分の位置情報から平均位置を算出していた(例えば図2のステップS205およびステップS206)。これについて、SW1がONとなってからSW2がONとなるまでは所定の回数に達しても測位処理を継続し、作業用メモリ104に所定の回数分の複数の位置情報を保持するよう構成してもよい。この保持されている複数の位置情報は、取得順に記録されている。そして、保持されている複数の位置情報は、新たな位置情報が取得される度に、古い位置情報から順に削除され、代わりに新たに取得された位置情報が記録される。つまり、保持されている位置情報のうち、古い位置情報から順に、新たな位置情報に更新される。これにより、作業用メモリ104は、常に最新の複数の位置情報を保持する。そして、SW2がONとなることに応じて、作業用メモリ104に保持されている最新の複数の位置情報が読み出され、該最新の複数の位置情報を用いて平均位置が算出される。これにより、例えばユーザがSW1を押下したまま移動して、移動後にSW2を押下するような場合でも、適切な誤差判定を行うことができる。
【0075】
また、上述の実施形態では、画像データに対応づけるための位置情報を一つだけ取得していた(例えば図2のステップS211)。これについては、画像データに対応づけるための位置情報を複数取得するよう構成してもよい。このように構成した場合、例えばステップS212では、CPU101は平均位置と、画像データに対応づけるための複数の位置情報のうち最も平均位置に近い位置情報とに基づき誤差判定をする。そして、ステップS213にてCPU101は、画像データに対応づけるための複数の位置情報のうち最も平均位置に近い位置情報を画像データに対応づける。このように構成することにより、画像データに対応づけるために複数取得された位置情報のうち、予期せぬ誤差が生じなかった位置情報が少なくとも一つあれば画像データに位置情報を対応づけることができる。したがって、予期せぬ誤差により画像データに位置情報が対応づけられない可能性をより低減することができる。
【0076】
また、上述の実施形態では、複数の位置情報から平均位置を算出していた。これについては、平均位置に限らず、例えば複数の位置情報の座標の中央値を座標としてもつ中央位置でもよい。
【0077】
なお、上述の実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
被写体を撮像して画像データを取得する撮像手段と、
前記撮像手段により画像データを取得するための準備動作を開始する指示を受け付ける第1の撮像指示受け付け手段と、
前記撮像手段により画像データを取得する指示を受け付ける第2の撮像指示受け付け手段と、
前記第2の撮像指示受け付け手段により指示を受け付けた場合、第1の位置情報を取得する第1の位置取得手段と、
前記撮像手段により取得した画像データと、前記第1の位置情報とを対応付けて記録媒体に記録する対応付け手段と、
前記第1の撮像指示受け付け手段により指示が受け付けられた後であり、かつ前記第2の撮像指示受け付け手段により指示が受け付けられる前に、複数の第2の位置情報を取得する第2の位置取得手段と、
前記複数の第2の位置情報に基づき、第3の位置情報を取得する第3の位置取得手段と、
前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れているか否かを判断する判断手段と、
前記判断手段により前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れていると判断された場合は、ユーザにその旨を通知する通知手段を有することを特徴とする撮像装置。
【請求項2】
前記判断手段により前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れていると判断された場合、前記第1の位置取得手段は、再度、前記第1の位置情報を取得することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記第2の撮像指示受け付け手段により指示が受け付けられた場合、第1の計時を開始する第1の計時手段をさらに有し、
前記判断手段により前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れていると判断され、かつ前記第1の計時手段により計時される時間が一定時間以内の場合、前記第1の位置取得手段は、再度、前記第1の位置情報を取得することを特徴とする請求項1に記載の撮像装置。
【請求項4】
前記第1の撮像指示受け付け手段により指示が受け付けられた場合、第2の計時を開始する第2の計時手段と、
前記第3の位置情報を保持する保持手段とをさらに有し、
前記第2の計時手段により一定時間が計時される前であり、かつ前記保持手段に前記第3の位置情報が保持されていた場合、前記第2の位置取得手段は、前記第2の位置情報を取得せず、
前記判断手段は、前記第2の計時手段により一定時間が計時される前に前記第2の撮像指示受け付け手段により指示が受け付けられ、かつ前記保持手段に前記第3の位置情報が保持されていた場合、前記第1の位置情報が示す位置と前記保持手段に保持されている第3の位置情報が示す位置とが所定の距離以上離れているか否かを判断することを特徴とする請求項3に記載の撮像装置。
【請求項5】
前記第1の位置取得手段は、複数の前記第1の位置情報を取得し、
前記判断手段は、前記複数の第1の位置情報が示す位置のうち、前記第3の位置情報が示す位置に最も近い位置が前記第3の位置情報が示す位置から所定の距離以上離れているか否かを判断し、
前記対応付け手段は、前記判断手段により、前記複数の第1の位置情報が示す位置のうち、前記第3の位置情報が示す位置に最も近い位置が前記第3の位置情報が示す位置から所定の距離以上離れていると判断された場合、前記画像データに前記第1の位置情報を対応づけず、
前記対応付け手段は、前記判断手段により、前記複数の第1の位置情報が示す位置のうち、前記第3の位置情報が示す位置に最も近い位置が前記第3の位置情報が示す位置から所定の距離以上離れていないと判断された場合、前記複数の第1の位置情報が示す位置のうち、前記第3の位置情報が示す位置に最も近い位置を示す第1の位置情報を画像データに対応付けることを特徴とする請求項1乃至4のいずれか1項に記載された撮像装置。
【請求項6】
前記対応付け手段は、前記画像データと、前記第2の位置取得手段により取得された複数の位置情報とを対応付けることを特徴とする請求項1乃至5のいずれか1項に記載の撮像装置。
【請求項7】
前記対応付け手段は、前記画像データと、前記第3の位置情報とを対応づけることを特徴とする請求項1乃至6のいずれか1項に記載の撮像装置。
【請求項8】
前記第1の位置情報、前記第2の位置情報、及び前記第3の位置情報は、緯度と経度の値を含むことを特徴とする請求項1乃至7のいずれか1項に記載された撮像装置。
【請求項9】
前記第3の位置取得手段は、前記複数の第2の位置情報の緯度の平均値、および前記複数の第2の位置情報の経度の平均値を、第3の位置情報として取得することを特徴とする請求項8に記載の撮像装置。
【請求項10】
前記第3の位置取得手段は、前記複数の第2の位置情報の緯度の中央値、および前記複数の第2の位置情報の経度の中央値を、第3の位置情報として取得することを特徴とする請求項8に記載の撮像装置。
【請求項11】
前記第3の位置取得手段は、前記第2の位置情報が一つだけ取得されている場合は、該第2の位置情報を、第3の位置情報として取得することを特徴とする請求項1乃至10のいずれか1項に記載の撮像装置。
【請求項12】
前記第1の位置情報を、前記画像データに対応づけるか否かを選択するための指示を受け付ける選択受け付け手段を有し、
前記対応付け手段は、前記選択受け付け手段により、前記第1の位置情報を前記画像データに対応づける指示が受け付けられたことに応じて、前記画像データを前記第1の位置情報と対応づけて記録媒体に記録し、
前記対応付け手段は、前記選択受け付け手段により、前記第1の位置情報を前記画像データに対応づけない指示が受け付けられたことに応じて、前記画像データを前記第1の位置情報と対応づけずに記録媒体に記録することを特徴とする請求項1乃至11のいずれか1項に記載の撮像装置。
【請求項13】
前記選択受け付け手段は、前記判断手段により前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れていると判断された場合に、前記指示を受け付けることを特徴とする請求項12に記載の撮像装置。
【請求項14】
前記第2の位置取得手段により取得された複数の第2の位置情報のうち、所定の数の第2の位置情報を、取得順に記録装置に記録する記録手段を有し、
前記第2の位置取得手段は、前記記録手段により記録された第2の位置情報が所定の数に達しても第2の位置情報を取得し続け、
前記記録手段は、前記記録装置に記録されている第2の位置情報が所定の数に達している場合かつ前記第2の位置取得手段により新たな第2の位置情報が取得された場合、前記所定の数の第2の位置情報のうち最も古い位置情報を削除し、前記新たな第2の位置情報を記録し、
前記第3の位置取得手段は、前記第2の撮像指示受け付け手段により指示が受け付けられた場合、前記記録手段に記録されている第2の位置情報のうち、最新の所定の数の第2の位置情報に基づき第3の位置情報を取得することを特徴とする請求項1乃至13のいずれか1項に記載の撮像装置。
【請求項15】
被写体を撮像して画像データを取得する撮像工程と、
前記撮像工程にて画像データを取得するための準備動作を開始する指示を受け付ける第1の撮像指示受け付け工程と、
前記撮像工程にて画像データを取得する指示を受け付ける第2の撮像指示受け付け工程と、
前記第2の撮像指示受け付け工程にて指示を受け付けた場合、第1の位置情報を取得する第1の位置取得工程と、
前記撮像工程にて取得した画像データと、前記第1の位置情報とを対応付ける対応付け工程と、
前記第1の撮像指示受け付け工程にて指示が受け付けられた後であり、かつ前記第2の撮像指示受け付け工程にて指示が受け付けられる前に、複数の第2の位置情報を取得する第2の位置取得工程と、
前記複数の第2の位置情報に基づき、第3の位置情報を取得する第3の位置取得工程と、
前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れているか否かを判断する判断手段と、
前記判断手段により前記第1の位置情報が示す位置と前記第3の位置情報が示す位置とが所定の距離以上離れていると判断された場合は、ユーザにその旨を通知する通知工程とを有することを特徴とする撮像装置の制御方法。
【請求項16】
コンピュータを請求項1乃至14のいずれか1項に記載の撮像装置として動作させるためのコンピュータが読み取り可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−4986(P2013−4986A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−130484(P2011−130484)
【出願日】平成23年6月10日(2011.6.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】