以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。図1は、第1実施形態に係る情報処理装置の一例を示した図である。
図1に示すように、情報処理装置10は、撮像部11、記憶部12、表示部13、及び制御部14を有する。
なお、撮像部11は、例えば、レンズなどの光学系、CCD(Charge Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)などの撮像素子、AD変換器(Analog-to-Digital Converter)、及び信号処理回路などを含むデバイスである。
記憶部12は、例えば、RAM(Random Access Memory)などの揮発性記憶装置、又はHDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置である。
表示部13は、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、又はELD(Electro-Luminescence Display)などのディスプレイデバイスである。
制御部14は、例えば、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)などのプロセッサである。制御部14は、ASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)などのプロセッサ以外の電子回路であってもよい。制御部14は、例えば、記憶部12や他のメモリに記憶されたプログラムを実行する。
撮像部11は、対象物21を撮像する。対象物21としては、例えば、文字や写真が掲載された印刷物や地図などがある。記憶部12は、画像を記憶する。但し、記憶部12は、画像以外の情報を記憶してもよい。表示部13は、画像が表示される画面を有する。例えば、表示部13の画面には、撮像部11が撮像している画像が表示される。また、表示部13の画面には、記憶部12に記憶されていた画像が表示される。
制御部14は、撮像部11により撮像されている対象物21の画像をリアルタイムで画面に表示する。また、制御部14は、少なくとも1枚の画像23bを記憶部12に記憶させる。例えば、ユーザが行った撮像操作に応じて、制御部14は、画像23bを記憶部12に記憶させる。なお、記憶部12に画像23bを記憶させるタイミングは、情報処理装置10の加速度変化に応じて自動的に決定されてもよいし、複数の撮像画像の関係に基づいて自動的に決定されてもよい。
図1の例では、情報処理装置10が位置Aから位置Bへと移動し、情報処理装置10と対象物21との間の距離がD2(D2<D1)となる。情報処理装置10が対象物21に近づくと対象物21上に情報処理装置10の影24が重なり、撮像部11により撮像される画像23aは暗くなる。また、距離D2が十分に短いと(例えば、最短撮影距離よりも短いと)ピントが合わなくなり、撮像部11により撮像される画像23aはぼける。
設定した条件を満たした場合、制御部14は、記憶部12が記憶している画像23bを読み出す。例えば、撮像部11により撮像される画像が暗くなる場合やピントが合わなくなる場合が上記の条件として設定される。設定した条件を満たしたか否かの判定方法としては、例えば、撮像部11により撮像される画像の変化を利用して行う方法などが考えられる。なお、情報処理装置10に加速度センサが搭載されている場合には、情報処理装置10の加速度変化が、設定した時間、設定した閾値を下回る状態が継続された場合を上記の条件として設定することもできる。
制御部14は、読み出した画像23bから現時点の撮像範囲22に対応する画像の一部(以下、部分画像)を抽出し、画面の表示を部分画像に切り替える。図1の例では、情報処理装置10と対象物21との間の距離がD2の場合、現時点で撮像されている画像23aには明度不足やぼけが生じている。しかし、読み出した画像23bの部分画像が画面に表示されるため、表示部13には、明度不足やぼけの少ない好適な画像が表示される。
図1に示した例のように、画面の表示を部分画像に切り替えた後は、情報処理装置10と対象物21とが接触した状態(情報処理装置10が位置Cの状態)でも表示部13には好適な画像が表示される。
上記のように、設定した条件を満たす前は、撮像部11により撮像されている画像が表示部13に表示されるため、画像の位置合わせ処理をせずに好適な画像の表示が実現される。一方、設定した条件を満たした後は、記憶部12に記憶されている画像の部分画像が表示部13に表示されるため、好適な画像表示が維持される。従って、情報処理装置10によれば撮影距離によらず好適な画像表示が得られる。また、設定した条件を満たす前の状態では部分画像を利用しないため、少なくとも部分画像の位置合わせ処理を行わずに済む分だけ演算負荷を抑制することができる。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。
[2−1.表示方法]
まず、図2及び図3を参照しながら、第2実施形態に係る情報処理装置100による表示方法について説明する。図2は、第2実施形態に係る情報処理装置による表示方法の一例を示した第1の図である。図3は、第2実施形態に係る情報処理装置による表示方法の一例を示した第2の図である。
図2に示すように、情報処理装置100は、対象物Mを撮像し、撮像画像を画面上に表示する機能を有する。例えば、位置A1にある場合、情報処理装置100は、筐体が透けて対象物Mが見えているかのように、位置A1で撮像している対象物Mの撮像画像を画面上に表示する。以下では、このような表示方法を透過表示と呼ぶ場合がある。透過表示は、情報処理装置100が撮像した撮像画像をリアルタイムで画面上に表示することにより実現できる。例えば、位置A2に移動した情報処理装置100は、位置A2で撮像した撮像画像をリアルタイムで画面上に表示する。
また、情報処理装置100は、ユーザが拡大操作や縮小操作を行った場合に、操作内容に応じて画面上に表示される撮像画像の表示サイズを変更する。例えば、情報処理装置100は、画像処理により撮像画像を拡大し、拡大した撮像画像の一部を画面上に表示する。なお、情報処理装置100にズームレンズが搭載されている場合には、ズームレンズの焦点距離をテレ端側へと駆動して撮像した撮像画像の一部を画面上に表示する仕組みにすることもできる。但し、以下の説明では簡単のために、単焦点レンズが搭載された情報処理装置100を考える。また、撮像画像の一部を部分画像と呼ぶ場合がある。
透過表示を実現する方法としては、上記のように撮像画像をそのまま画面上に表示する方法の他、対象物Mの画像を1枚用意しておき、その画像から情報処理装置100の位置に応じた対象物Mの撮像範囲を切り出して画面上に表示する方法が考えられる。例えば、位置A1にある情報処理装置100は、位置A1における撮像範囲を計算し、予め用意しておいた対象物Mの画像(以下、保持画像)の中から撮像範囲に対応する領域(以下、対象領域)を検出する。対象領域の検出は、例えば、実際の撮像画像と保持画像とのパターンマッチングを行うことで実現できる。
位置A1において情報処理装置100は、保持画像から対象領域を切り出して画面上に表示する。また、情報処理装置100が位置A1から位置A2に移動した場合、情報処理装置100は、位置A2において対象領域を計算し、計算した対象領域を保持画像から切り出して画面上に表示する。つまり、この方法では情報処理装置100の位置が変化する度にパターンマッチングによる対象領域の計算が発生する。対象物Mと平行なX−Y平面内で情報処理装置100が移動した場合の他、X−Y面に対して情報処理装置100が傾いた場合も、同様の計算が発生する。
対象物Mと情報処理装置100との間の距離が大きければ大きいほど、情報処理装置100の姿勢変化や位置変化が画像の見え方に与える影響が大きくなるため、対象領域を計算する演算の負荷は増大する。このような演算負荷の増大を抑制するため、情報処理装置100は、図3に示すように、対象物Mと情報処理装置100との間の位置関係に応じて透過表示の仕組みを切り替える。
図3には、情報処理装置100が位置B1、B2、B3の順に移動する様子が例示されている。位置B1にある情報処理装置100と対象物Mとの間の距離D1は大きい。位置B2にある情報処理装置100と対象物Mとの間の距離D2はD1より小さい。そして、位置B3にある情報処理装置100は対象物M上に置かれている。つまり、図3の例では、対象物Mに近づく方向(Z方向)へと情報処理装置100が移動する様子が示されている。
上記のように、対象物Mと情報処理装置100との間の距離は対象領域の計算時にかかる演算負荷に影響する。そのため、対象物Mと情報処理装置100との間の距離が、ある距離よりも大きい場合、情報処理装置100は、撮像画像をリアルタイムで画面上に表示する方法(以下、リアルタイム表示)により、低い演算負荷で透過表示を実現する。但し、リアルタイム表示の場合、対象物Mと情報処理装置100との間の距離が、ある距離よりも小さいと鮮明な撮像画像を得ることができない場合がある。
例えば、被写体にピントを合わせることができる撮影距離の最短(最短撮影距離)はレンズ毎に決まっているため、レンズの最短撮影距離よりも対象物Mと情報処理装置100(厳密には撮像素子)との間の距離が短い場合にはピントが合わない。また、情報処理装置100が対象物Mに近すぎると対象物Mに情報処理装置100の影が重なり、像が暗くなる。この様子を図3(位置B2に情報処理装置100がある場合)に示している。位置B2にある情報処理装置100が撮像する撮像画像は、像が暗くピントの合っていない不鮮明な画像となる。
そこで、情報処理装置100は、鮮明な撮像画像を予め記憶しておき、情報処理装置100の位置変化に応じて撮像画像が不鮮明になる前に、保持画像を利用する方法(以下、保持画像表示)へと透過表示の仕組みを切り替える。保持画像表示に切り替えると、上述したように対象領域の計算にかかる演算負荷は生じるが、情報処理装置100と対象物Mとの距離が小さいため、比較的少ない演算負荷で透過表示を実現することができる。また、位置B3に情報処理装置100が移動した場合(対象物Mに密着した場合)であっても、対象物Mの内容を表示することが可能になる。
第2実施形態に係る技術は様々なアプリケーションプログラムに適用可能であるが、一例として、虫眼鏡アプリケーションプログラムに適用する場合について考える。このアプリケーションプログラムは、情報処理装置100を対象物Mに近づけると、あたかも虫眼鏡で対象物Mを見ているかのように拡大表示されるというものである。なお、拡大倍率は予め設定されているものとする。ユーザが情報処理装置100を対象物Mに近づけると、情報処理装置100と対象物Mとの間の距離に応じて対象物Mの一部が情報処理装置100の画面上に拡大表示され、虫眼鏡で対象物Mを見ているのと同じように見える。
リアルタイム表示だけを利用して透過表示を実現している場合、ユーザが情報処理装置100を対象物Mに近づけ過ぎると表示が乱れたり、真っ暗な表示になってしまう。一方、保持画像表示だけを利用して透過表示を実現している場合、プロセッサの性能によっては表示に遅延が生じる可能性や、発熱量やバッテリ消費量が大きくなる可能性がある。
しかし、上記の情報処理装置100によれば、情報処理装置100を対象物Mに密着させても透過表示が可能である上、表示遅延、発熱量の増加、バッテリ消費量の増加などが生じにくい。従って、虫眼鏡アプリケーションプログラムは第2実施形態に係る技術の好適な適用例であると言える。もちろん、透過表示を利用する任意のアプリケーションプログラムに対して第2実施形態に係る技術を適用可能である。
以上、情報処理装置100による表示方法について説明した。
[2−2.ハードウェア]
次に、図4を参照しながら、情報処理装置100のハードウェアについて説明する。図4は、第2実施形態に係る情報処理装置が有する機能を実現可能なハードウェアの一例を示した図である。
情報処理装置100が有する機能は、例えば、図4に示すハードウェア資源を用いて実現することが可能である。つまり、情報処理装置100が有する機能は、コンピュータプログラムを用いて図4に示すハードウェアを制御することにより実現される。
図4に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インタフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918としては、例えば、CRT、LCD、PDP、又はELDなどのディスプレイデバイスが用いられる。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、情報を視覚的又は聴覚的に出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、カメラ、マイク、イヤホン、赤外光源などが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN(Local Area Network)用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
以上、情報処理装置100のハードウェアについて説明した。
[2−3.機能]
次に、図5〜図7を参照しながら、情報処理装置100の機能について説明する。図5は、第2実施形態に係る情報処理装置の機能について説明するための第1のブロック図である。図6は、第2実施形態に係る情報処理装置の機能について説明するための第2のブロック図である。図7は、第2実施形態に係る情報処理装置の機能について説明するための第3のブロック図である。なお、説明の中で、適宜、図8〜図10を参照する。
図5に示すように、情報処理装置100は、位置情報取得部101、撮像部102、制御部103、表示部104、及び記憶部105を有する。なお、位置情報取得部101及び制御部103の機能は、例えば、上述したCPU902などを用いて実現できる。表示部104の機能は、例えば、上述した出力部918などを用いて実現できる。記憶部105の機能は、例えば、上述したRAM906や記憶部920などを用いて実現できる。
(位置情報取得部101)
位置情報取得部101は、情報処理装置100の位置に関する情報を取得する要素である。例えば、位置情報取得部101は、図6に示すように、加速度センサ111、及び移動情報計算部112を含む。
加速度センサ111は、例えば、X軸方向の加速度値ax、Y軸方向の加速度値ay、及びZ軸方向の加速度値azを検知する3軸加速度センサである。適用可能な3軸加速度センサとしては、MEMS(Micro Electro Mechanical Systems)を利用した半導体方式の加速度センサなどがある。例えば、静電容量の変化から加速度を検出する静電容量型の加速度センサや、ピエゾ抵抗素子を利用して加速度を検出するピエゾ抵抗型の加速度センサなどが利用可能である。もちろん、他の方式に係る3軸加速度センサも適用可能である。
加速度センサ111から出力される軸毎の加速度値は、移動情報計算部112及び制御部103に入力される。移動情報計算部112は、加速度センサ111により検出された軸毎の加速度値を時間について2階積分し、情報処理装置100の移動方向及び移動量を計算する。移動情報計算部112により計算された情報処理装置100の移動方向及び移動量を示す情報(以下、移動情報)は制御部103に入力される。
(撮像部102)
撮像部102は、対象物Mを撮像する要素である。撮像部102により撮像された対象物Mの画像(撮像画像)は制御部103に入力される。なお、透過表示を利用するアプリケーションプログラムが動作している間、撮像部102は、対象物Mを継続的に撮像し続け、逐次、撮像画像を制御部103に入力する。なお、撮像画像を撮像し続ける時間や、撮像の開始及び終了のタイミングをユーザが操作できる仕組みにしてもよい。この場合、ユーザ操作に応じて撮像された対象物Mの撮像画像が制御部103に入力される。
(制御部103)
制御部103は、撮像画像の記録(保持画像の選択)、対象領域の計算、画像の表示、リアルタイム表示から保持画像表示への切り替え、及び保持画像表示からリアルタイム表示への切り替えなどを行う要素である。
図7に示すように、制御部103は、表示制御部131、操作情報取得部132、画像記録部133、切り替え判定部134、及び対象領域計算部135を含む。
表示制御部131は、撮像画像又は保持画像を表示部104に表示する。操作情報取得部132は、ユーザが入力した操作情報を取得する。例えば、ユーザがシャッタ操作を行った場合、操作情報取得部132は、シャッタ操作を示す操作情報を取得する。また、ユーザが表示サイズの拡大操作を行った場合、操作情報取得部132は、拡大操作を示す操作情報を取得する。また、ユーザが表示サイズの縮小操作を行った場合、操作情報取得部132は、縮小操作を示す操作情報を取得する。
シャッタ操作を示す操作情報は、画像記録部133に入力される。また、拡大操作を示す操作情報は、倍率の情報と共に対象領域計算部135に入力される。また、縮小操作を示す操作情報は、倍率の情報と共に対象領域計算部135に入力される。
画像記録部133は、シャッタ操作を示す操作情報が入力された場合、図8に示すように、撮像部102により撮像された撮像画像を記憶部105に記録する。図8は、第2実施形態に係る情報処理装置が有する画像保持機能について説明するための図である。なお、画像記録部133により記憶部105に記録された撮像画像を保持画像と呼ぶ。保持画像の幅をW、保持画像の高さをH、保持画像の中心座標をOと表記する。保持画像の撮影時における情報処理装置100の位置を基準位置と呼ぶことにする。
切り替え判定部134は、設定した条件を満たすか否かを判定する。設定した条件を満たした場合、切り替え判定部134は、リアルタイム表示から保持画像表示へと表示方法を切り替える。また、設定した条件を満たさなくなった場合、切り替え判定部134は、保持画像表示からリアルタイム表示へと表示方法を切り替える。
条件の設定方法はいくつか考えられるが、ここでは、図9を参照しながら、Z軸方向に関する情報処理装置100の加速度変化に応じて表示方法を切り替える例について説明する。他の例(変形例)については後述する。図9は、第2実施形態に係る情報処理装置が有する切り替え判定機能(静止判定)について説明するための図である。
切り替え判定部134は、位置情報取得部101から入力されるZ軸方向の加速度値azを時間Tz毎に記録する。このとき、切り替え判定部134は、現時刻から時間Ta前までの加速度値azを記録する。
なお、時間Tz及びTaは予め設定されているものとする。また、現時刻における加速度値をaz[n](n=Ta/Tz)、時間Ta前の時刻における加速度値をaz[1]と表記し、時間Ta前の時刻から現時刻までに記録される加速度値を順にaz[j](j=1,…,n)と表記する。なお、記録にはリングバッファなどを用いてもよい。
図9には、ある期間における加速度値azの変化が記載されている。切り替え判定部134は、時間Taにおける加速度値azの変化が0又は0に近い値であればリアルタイム表示から保持画像表示へと切り替える。
例えば、切り替え判定部134は、区間dt1における加速度値azの変化量azzと、予め設定された0に近い値azz_maxとを比較する。なお、区間dt1では変化量azzが値azz_maxより小さいものとする。この場合、切り替え判定部134は、リアルタイム表示から保持画像表示へと表示方法を切り替える。
また、切り替え判定部134は、区間dt2における加速度値azの変化量azzと、予め設定された0に近い値azz_maxとを比較する。なお、区間dt2では変化量azzが値azz_maxより小さいものとする。この場合、切り替え判定部134は、表示方法を切り替えずに保持画像表示を維持する。
また、切り替え判定部134は、区間dt3における加速度値azの変化量azzと、予め設定された0に近い値azz_maxとを比較する。なお、区間dt3では変化量azzが値azz_maxより大きいものとする。この場合、切り替え判定部134は、保持画像表示からリアルタイム表示へと表示方法を切り替える。
ところで、虫眼鏡を利用して新聞や地図を見る場合、人は、文字や図形が所望の大きさで表示されるまで虫眼鏡を上下に動かす。文字や図形が所望の大きさで表示された場合、人は、現在の位置から虫眼鏡を上下に大きく動かすことなく新聞や地図を読み始める。読んでいる間、読む範囲を変えるために、新聞や地図に平行な方向に虫眼鏡を動かすことはあるが、新聞や地図へと虫眼鏡を急に近づけたり、離したりすることは少ない。このような行動の変化はZ軸方向への加速度変化に基づいて検知することが可能である。
対象物Mを観察している状態では保持画像表示により鮮明な画像を表示し、人が文字や図形の大きさを調整している状態ではリアルタイム表示にして演算負荷を減らすという仕組みは合理的である。つまり、表示品質と演算負荷との良好なバランスが実現できる。なお、値azz_maxを0に調整すれば情報処理装置100を対象物Mの上に載置した際にリアルタイム表示から保持画像表示へと切り替わる仕組みに変形することができる。
さて、リアルタイム表示であるか、保持画像表示であるかを示す情報は、表示制御部131及び対象領域計算部135に入力される。保持画像表示である場合、対象領域計算部135は、図10に示すように、現時刻における情報処理装置100の撮像範囲に対応する対象領域を計算する。図10は、第2実施形態に係る情報処理装置が有する領域計算機能について説明するための図である。
なお、情報処理装置100は位置Pにあるとする。対象領域計算部135は、位置情報取得部101から入力された基準位置及び位置Pの位置情報、及び操作情報取得部132から入力された倍率(以下、倍率B)の情報を利用する。
対象領域計算部135は、視野角θ(図10(B)を参照)、位置PのZ座標ZP、保持画像の幅Wに基づき、下記の式(1)に従って基準倍率Aを計算する。また、対象領域計算部135は、下記の式(2)で定義される表示倍率Cを計算する。そして、対象領域計算部135は、表示倍率Cに基づいて対象領域の幅C*W及び高さC*Hを計算する。また、対象領域計算部135は、基準位置から位置Pへの移動方向及び移動量(図10(C)の符号Vを参照)に基づき、対象領域の中心座標(XP,YP)を計算する。
対象領域計算部135により計算された対象領域の幅C*W及び高さC*H、中心座標(XP,YP)、及び表示倍率Cは、表示制御部131に入力される。そして、表示制御部131により、保持画像から対象領域に対応する部分画像が切り出され、部分画像を1/C倍した画像が表示部104に表示される。
(表示部104、記憶部105)
表示部104は、撮像画像又は保持画像を表示する。記憶部105は、保持画像を記憶する。なお、情報処理装置100の外部に接続された表示装置に撮像画像又は保持画像を表示する仕組みに変形することもできる。また、情報処理装置100の外部に接続された記憶装置が保持画像を記憶する仕組みに変形することもできる。
以上、情報処理装置100の機能について説明した。
[2−4.処理フロー]
次に、図11及び図12を参照しながら、情報処理装置100が実行する表示処理の流れについて説明する。
(表示処理の全体的な流れ)
まず、図11を参照しながら、表示処理の全体的な流れについて説明する。図11は、第2実施形態に係る情報処理装置が実行する表示処理の流れを示したフロー図である。
(S101)撮像部102が対象物Mを撮像する。撮像部102により撮像された対象物Mの撮像画像は制御部103に入力される。
(S102)ユーザによりシャッタ操作が行われた場合、制御部103は、シャッタ操作に応じて撮像部102から入力された撮像画像を保持画像として記憶部105に記憶させる。一方、シャッタ操作が行われない場合には、S102の処理はスキップされる。なお、保持画像として記憶部105に記録された撮像画像の撮像時における情報処理装置100の位置が基準位置に設定される。
(S103)制御部103は、保持画像を表示部104に表示させるか否かを判定する。保持画像を表示部104に表示させる場合、処理はS104に進む。一方、保持画像を表示部104に表示しない場合(撮像画像を表示部104に表示させる場合)、処理はS109に進む。
(S104)位置情報取得部101は、検知した加速度値から情報処理装置100の移動方向及び移動量を計算する。位置情報取得部101により計算された移動方向及び移動量を示す情報(移動情報)は制御部103に入力される。また、位置情報取得部101が検知した加速度値の情報も制御部103に入力される。
(S105、S106)制御部103は、入力された移動情報から基準位置を基準とする情報処理装置100の位置を計算する。また、制御部103は、視野角θ(図10(B)を参照)、現在位置のZ座標ZP、保持画像の幅Wに基づき、上記の式(1)に従って基準倍率Aを計算する。さらに、制御部103は、ユーザによる拡大操作又は縮小操作に応じて操作倍率Bを設定する。
(S107)制御部103は、上記の式(2)で定義される表示倍率Cを計算する。次いで、制御部103は、表示倍率Cに基づいて対象領域の幅C*W及び高さC*Hを計算する。また、制御部103は、移動情報(図10(C)の符号Vを参照)に基づき、対象領域の中心座標(XP,YP)を計算する。
(S108)制御部103は、記憶部105から保持画像を読み出す。次いで、制御部103は、S107で計算した対象領域の幅C*W及び高さC*H及び中心座標(XP,YP)に基づいて保持画像から対象領域に対応する部分画像を切り出す。次いで、制御部103は、切り出した部分画像を表示部104に表示させる。S108の処理が完了すると、処理はS110に進む。
(S109)制御部103は、撮像部102から入力された撮像画像を表示部104に表示させる。S109の処理が完了すると、処理はS110に進む。
(S110)アプリケーションプログラムを終了する操作が行われていない場合、処理はS101に戻る。一方、アプリケーションプログラムを終了する操作が行われた場合、図11に示した一連の処理は終了する。
(切り替え判定処理の流れ)
ここで、図12を参照しながら、図11に示したS103の処理に対応する切り替え判定処理の流れについて、さらに説明する。図12は、第2実施形態に係る情報処理装置が実行する切り替え判定処理の流れを示したフロー図である。なお、図12に示す切り替え判定処理は、主に制御部103が有する切り替え判定部134により実行される。
なお、切り替え判定部134は、位置情報取得部101から入力されるZ軸方向の加速度値azを時間Tz毎に保持しているものとする。また、切り替え判定部134は、現時刻から時間Ta前までの加速度値azを保持しているものとする。時間Tz及びTaは予め設定されているものとする。また、現時刻における加速度値をaz[n](n=Ta/Tz)、時間Ta前の時刻における加速度値をaz[1]と表記し、時間Ta前の時刻から現時刻までに記録される加速度値を順にaz[j](j=1,…,n)と表記する。
(S111)切り替え判定部134は、位置情報取得部101から入力された加速度値のうち、Z軸方向の加速度値azを用いて加速度値の差azzを計算する。但し、加速度値の差azzは、例えば、下記の式(3)で定義される。
(S112)切り替え判定部134は、S111で計算した加速度値の差azzが閾値azz_max以下であるか否かを判定する。閾値azz_maxは、予め設定された0に近い値である。例えば、閾値azz_maxは、人が虫眼鏡やルーペを利用して紙面などを見る際に行う動作を考慮して実験的に設定される。加速度値の差azzが閾値azz_max以下である場合、処理はS113に進む。一方、加速度値の差azzが閾値azz_max以下でない場合、処理はS117に進む。
(S113)切り替え判定部134は、加速度値の変化量daz[j](j=1,…,n−1)を計算する。但し、加速度値の変化量daz[j]は、j=1,…,n−1のそれぞれについて、下記の式(4)で定義される。
(S114)切り替え判定部134は、S113で計算した加速度値の変化量daz[j](j=1,…,n−1)の中から最大値dazzを抽出する。
(S115)切り替え判定部134は、S114で抽出した最大値dazzが閾値dazz_max以下であるか否かを判定する。閾値dazz_maxは、予め設定された0に近い値である。例えば、閾値dazz_maxは、人が虫眼鏡やルーペを利用して紙面などを見る際に行う動作を考慮して実験的に設定される。加速度値の差dazzが閾値dazz_max以下である場合、処理はS116に進む。一方、加速度値の差dazzが閾値dazz_max以下でない場合、処理はS117に進む。
(S116)切り替え判定部134は、表示部104に表示する画像を保持画像に設定する。つまり、切り替え判定部134は、表示方法を保持画像表示に設定する。S116の処理が完了すると、図12に示した一連の処理は終了する。
(S117)切り替え判定部134は、表示部104に表示する画像を撮像画像に設定する。つまり、切り替え判定部134は、表示方法をリアルタイム表示に設定する。S117の処理が完了すると、図12に示した一連の処理は終了する。
以上、情報処理装置100が実行する表示処理の流れについて説明した。
[2−5.変形例#1(距離に基づく切り替え判定)]
次に、図13〜図15を参照しながら、第2実施形態の一変形例(変形例#1)について説明する。変形例#1は、情報処理装置100と対象物Mとの間の距離に応じてリアルタイム表示と保持画像表示とを切り替える方法に関する。つまり、変形例#1では、情報処理装置100が有する機能のうち切り替え判定部134の機能が変形される。
(切り替え判定機能)
図13及び図14を参照しながら、変形例#1に係る情報処理装置100が有する切り替え判定部134の機能について説明する。
なお、図13は、第2実施形態の一変形例(変形例#1)に係る情報処理装置が有する切り替え判定機能について説明するための第1の図である。図14は、第2実施形態の一変形例(変形例#1)に係る情報処理装置が有する切り替え判定機能について説明するための第2の図である。
ここでは撮像画像の変化から情報処理装置100と対象物Mとの間の距離を計算する方法について考える。一例として、図13に示すように、情報処理装置100が位置P1にある状況で撮像された撮像画像I1、及び情報処理装置100が位置P2にある状況で撮像された撮像画像I2を利用して距離を計算する方法について説明する。位置P1は、対象物Mと情報処理装置100との間の距離が(D+dd)となる位置である。位置P2は、対象物Mと情報処理装置100との間の距離がDとなる位置である。
切り替え判定部134は撮像画像I1を記録する。さらに、切り替え判定部134は、撮像画像I1の撮像時におけるZ軸方向の加速度値az1を記録する。その後、切り替え判定部134は、時間Tbが経過するまで待機する。時間Tbは予め設定された値である。例えば、時間Tbは、人が情報処理装置100を移動させる時間よりも十分に短い時間(例えば、50ミリ秒)に設定される。
撮像画像I1を撮像した後、時間Tbが経過した時点で情報処理装置100の位置が位置P2に移動しているとする。切り替え判定部134は、この時点で撮像された撮像画像I2を記録する。さらに、切り替え判定部134は、撮像画像I2の撮像時におけるZ軸方向の加速度値az2を記録する。そして、切り替え判定部134は、下記の式(5)に基づいて、情報処理装置100が位置P1から位置P2へと移動した距離ddを計算する。
次に、切り替え判定部134は、撮像画像I1から特徴点p1i(i=1,2,…,n1)を抽出する。そして、切り替え判定部134は、全ての特徴点間の距離を計算し、計算した距離の平均値をdcmaとする。
例えば、図14に示すように、切り替え判定部134は、特徴点p11、p12を抽出し、特徴点p11、p12間の距離dcaを計算する。切り替え判定部134は、他の特徴点についても同様に距離dcaを計算し、計算した距離dcaの平均値dcmaを算出する。
なお、撮像画像I1から抽出する特徴点としては、例えば、端点、角、分岐点などが用いられる。特徴点の抽出方法としては、撮像画像I1を二値化し、細線化した後、隣接する画素間の配置から端点などを検出する方法が適用可能である。適用可能な例として、H.P.MoravecやC.Harrisのアルゴリズムなどがある。
特徴点p1i(i=1,2,…,n1)の座標が(xi,yi)で与えられる場合、距離の平均値dcmaは、下記の式(6)により与えられる。同様に、切り替え判定部134は、撮像画像I2から特徴点p2k(k=1,2,…,n2)を抽出する。そして、切り替え判定部134は、全ての特徴点間の距離を計算し、計算した距離の平均値をdcmbとする。
撮像画像I1に関する平均値dcma及び撮像画像I2に関する平均値dcmbを計算した切り替え判定部134は、平均値dcma、dcmb及び距離ddを用いて距離Dを計算する。距離Dは、下記の式(7)により与えられる。
距離Dを計算した切り替え判定部134は、距離Dと予め設定した値D_maxとを比較する。距離Dが値D_max以下である場合、切り替え判定部134は、表示方法を保持画像表示に設定する。一方、距離Dが値D_max以下でない場合、切り替え判定部134は、表示方法をリアルタイム表示に設定する。
このように、変形例#1においては、情報処理装置100と対象物Mとの間の距離Dに応じて表示方法の切り替えが行われる。値D_maxより距離Dが大きい状況ではリアルタイム表示が行われるため、保持画像から撮像範囲に対応する部分画像を切り出す処理の負荷が低減される。
(切り替え判定処理の流れ)
次に、図15を参照しながら、変形例#1に係る情報処理装置100が実行する切り替え判定処理の流れについて説明する。この切り替え判定処理は、図11に示したS103の処理に対応する処理である。なお、図15は、第2実施形態の一変形例(変形例#1)に係る情報処理装置が実行する切り替え判定処理の流れを示したフロー図である。図15に示した処理は、主に制御部103が有する切り替え判定部134により実行される。
(S201)切り替え判定部134は、撮像画像I1を記録する。さらに、切り替え判定部134は、撮像画像I1の撮像時におけるZ軸方向の加速度値az1を記録する。
(S202)切り替え判定部134は、時間Tbが経過するまで待機する。時間Tbは予め設定された値である。例えば、時間Tbは、人が情報処理装置100を移動させる時間よりも十分に短い時間(例えば、50ミリ秒)に設定される。
(S203)切り替え判定部134は撮像画像I2を記録する。さらに、切り替え判定部134は、撮像画像I2の撮像時におけるZ軸方向の加速度値az2を記録する。
(S204)切り替え判定部134は、上記の式(5)に基づいて、情報処理装置100が位置P1から位置P2へと移動した距離ddを計算する。
(S205)切り替え判定部134は、撮像画像I1から特徴点p1i(i=1,2,…,n1)を抽出する。また、切り替え判定部134は、撮像画像I2から特徴点p2k(k=1,2,…,n2)を抽出する。
(S206)切り替え判定部134は、撮像画像I1について全ての特徴点間の距離を計算し、計算した距離の平均値をdcmaとする。なお、特徴点p1i(i=1,2,…,n1)の座標が(xi,yi)で与えられる場合、距離の平均値dcmaは、上記の式(6)により与えられる。同様に、切り替え判定部134は、撮像画像I2について全ての特徴点間の距離を計算し、計算した距離の平均値をdcmbとする。
(S207)切り替え判定部134は、撮像画像I1に関する平均値dcma、撮像画像I2に関する平均値dcmb、及び距離ddを用いて距離Dを計算する。このとき、切り替え判定部134は、上記の式(7)に基づいて距離Dを計算する。
(S208)切り替え判定部134は、距離Dが閾値D_max以下であるか否かを判定する。距離Dが閾値D_max以下である場合、処理はS209に進む。一方、距離Dが閾値D_max以下でない場合、処理はS210に進む。
(S209)切り替え判定部134は、表示部104に表示する画像を保持画像に設定する。つまり、切り替え判定部134は、表示方法を保持画像表示に設定する。S209の処理が完了すると、図15に示した一連の処理は終了する。
(S210)切り替え判定部134は、表示部104に表示する画像を撮像画像に設定する。つまり、切り替え判定部134は、表示方法をリアルタイム表示に設定する。S210の処理が完了すると、図15に示した一連の処理は終了する。
以上、変形例#1について説明した。
[2−6.変形例#2(ピント状態に基づく切り替え判定)]
次に、図16及び図17を参照しながら、第2実施形態の一変形例(変形例#2)について説明する。変形例#2は、撮像画像のピント状態に応じてリアルタイム表示と保持画像表示とを切り替える方法に関する。つまり、変形例#2では、情報処理装置100が有する機能のうち切り替え判定部134の機能が変形される。
(切り替え判定機能)
図16を参照しながら、変形例#2に係る情報処理装置100が有する切り替え判定部134の機能について説明する。なお、図16は、第2実施形態の一変形例(変形例#2)に係る情報処理装置が有する切り替え判定機能について説明するための図である。
ここでは撮像画像のピント状態を検出する方法について考える。図16には、ピント状態が優れた撮像画像I1、ピント状態が劣る撮像画像I3、及びこれらの中間くらいのピント状態にある撮像画像I2を模式的に示した。
ピント状態が合っている場合、像がシャープなため、像内の画素と周辺画素との間で画素値の差が大きくなる。一方、撮像画像I3のようにピントが大きく外れている場合、像がぼやけてしまうため、像内の画素と周辺画素との間で画素値の差は小さくなる。従って、撮像画像毎に隣接画素間での画素値の差分を計算し、その平均値を計算して撮像画像I1、I2、I3間で比較すると、撮像画像I1が最も大きな値となり、撮像画像I3が最も小さな値となる。変形例#2では、このような性質を利用して撮像画像のピント状態を検出する方法を提案する。
まず、切り替え判定部134は撮像画像をグレースケール化する。例えば、切り替え判定部134は、RGBの3チャンネルで取得した3つの画素値を平均し、平均値を画素値g[x,y]とする。但し、(x,y)は画素の位置座標である。なお、切り替え判定部134は、3つの画素値から最大値を抽出して画素値g[x,y]としてもよい。次いで、切り替え判定部134は、画素値g[x,y]の変化量dg[x,y]を計算する。変化量dg[x,y]は、例えば、下記の式(8)で与えられる。
撮像画像に含まれる全ての画素について変化量dg[x,y]を計算した切り替え判定部134は、全ての画素に関する変化量dg[x,y]の平均値Dgを計算する。そして、切り替え判定部134は、平均値Dgと予め設定しておいた値Dg_maxとを比較する。なお、値Dg_maxは、保持画像から求めた値に設定されてもよい。平均値Dgが値Dg_max以下である場合、切り替え判定部134は、表示方法を保持画像表示に設定する。一方、平均値Dgが値Dg_max以下でない場合、切り替え判定部134は、表示方法をリアルタイム表示に設定する。
このように、変形例#2においては、ピントが合わない状態になったタイミングで表示方法がリアルタイム表示から保持画像表示に切り替えられる。そのため、ピントが合う状態にある間はリアルタイム表示が行われ、保持画像から撮像範囲に対応する部分画像を切り出す処理の負荷が低減される。また、情報処理装置100の位置によらずピントが合った状態が維持されるため、シームレスな操作感をユーザに提供することができる。
(切り替え判定処理の流れ)
次に、図17を参照しながら、変形例#2に係る情報処理装置100が実行する切り替え判定処理の流れについて説明する。この切り替え判定処理は、図11に示したS103の処理に対応する処理である。なお、図17は、第2実施形態の一変形例(変形例#2)に係る情報処理装置が実行する切り替え判定処理の流れを示したフロー図である。図17に示した処理は、主に制御部103が有する切り替え判定部134により実行される。
(S231)切り替え判定部134は、撮像画像をグレースケール化する。例えば、切り替え判定部134は、RGBの3チャンネルで取得した3つの画素値を平均し、平均値を画素値g[x,y]とする。
(S232)切り替え判定部134は、画素値g[x,y]の変化量dg[x,y]を計算する。例えば、変化量dg[x,y]は、画素毎に周辺画素との間で画素値の差分を計算し、計算した差分の最大値を変化量dg[x,y]とする(上記の式(8)を参照)。
(S233)切り替え判定部134は、撮像画像に含まれる全ての画素を対象に変化量dg[x,y]の平均値Dgを計算する。
(S234)切り替え判定部134は、平均値Dgが閾値Dg_max以下であるか否かを判定する。平均値Dgが閾値Dg_max以下である場合、処理はS235に進む。一方、平均値Dgが閾値Dg_max以下でない場合、処理はS236に進む。
(S235)切り替え判定部134は、表示部104に表示する画像を保持画像に設定する。つまり、切り替え判定部134は、表示方法を保持画像表示に設定する。S235の処理が完了すると、図17に示した一連の処理は終了する。
(S236)切り替え判定部134は、表示部104に表示する画像を撮像画像に設定する。つまり、切り替え判定部134は、表示方法をリアルタイム表示に設定する。S236の処理が完了すると、図17に示した一連の処理は終了する。
以上、変形例#2について説明した。
[2−7.変形例#3(明度状態に基づく切り替え判定)]
次に、図18及び図19を参照しながら、第2実施形態の一変形例(変形例#3)について説明する。変形例#3は、撮像画像の明度状態に応じてリアルタイム表示と保持画像表示とを切り替える方法に関する。つまり、変形例#3では、情報処理装置100が有する機能のうち切り替え判定部134の機能が変形される。
(切り替え判定機能)
図18を参照しながら、変形例#3に係る情報処理装置100が有する切り替え判定部134の機能について説明する。なお、図18は、第2実施形態の一変形例(変形例#3)に係る情報処理装置が有する切り替え判定機能について説明するための図である。
ここでは撮像画像の明度状態を検出する方法について考える。図18には、明度状態が優れた撮像画像I1、明度状態が劣る撮像画像I3、及びこれらの中間くらいの明度状態にある撮像画像I2を模式的に示した。
情報処理装置100が対象物Mに過度に近づくと情報処理装置100の影が対象物Mに重なり、撮像画像I3に示すように撮像画像の明度が低下する。そこで、切り替え判定部134は、光量不足により明度が低下する前にリアルタイム表示から保持画像表示に切り替える。切り替え判定部134は、撮像画像に含まれる全ての画素について画素毎に明度bp[x,y]を求める。但し、(x,y)は画素の位置座標である。
(x,y)にある画素について、RGBの3チャンネルで取得した3つの画素値(R,G,B)の最大値をImax[x,y]及び最小値をImin[x,y]と表現する。切り替え判定部134は、撮像画像に含まれる全ての画素について、例えば、下記の式(9)又は式(10)で与えられる明度bp[x,y]を計算する。
切り替え判定部134は、撮像画像に含まれる全ての画素について計算した明度bp[x,y]について平均値Bpを求める。そして、切り替え判定部134は、計算した平均値Bpと予め設定した値Bp_maxとを比較する。なお、値Bp_maxは保持画像から求めた値であってもよい。平均値Bpが値Bp_max以下である場合、切り替え判定部134は、表示方法を保持画像表示に設定する。一方、平均値Bpが値Bp_max以下でない場合、切り替え判定部134は、表示方法をリアルタイム表示に設定する。
このように、変形例#3においては、光量が不足した状態になったタイミングで表示方法がリアルタイム表示から保持画像表示に切り替えられる。そのため、光量が充足している間はリアルタイム表示が行われ、保持画像から撮像範囲に対応する部分画像を切り出す処理の負荷が低減される。また、情報処理装置100の位置によらず良好な明度状態が維持されるため、シームレスな操作感をユーザに提供することができる。
(切り替え判定処理の流れ)
次に、図19を参照しながら、変形例#3に係る情報処理装置100が実行する切り替え判定処理の流れについて説明する。なお、図19は、第2実施形態の一変形例(変形例#3)に係る情報処理装置が実行する切り替え判定処理の流れを示したフロー図である。図19に示した処理は、主に制御部103が有する切り替え判定部134により実行される。
(S251)切り替え判定部134は、撮像画像の画素毎に明度bp[x,y]を計算する。例えば、切り替え判定部134は、撮像画像に含まれる全ての画素について、上記の式(9)又は式(10)で与えられる明度bp[x,y]を計算する。
(S252)切り替え判定部134は、撮像画像に含まれる全ての画素について計算した明度bp[x,y]について平均値Bpを計算する。
(S253)切り替え判定部134は、平均値Bpが閾値Bp_max以下であるか否かを判定する。平均値Bpが閾値Bp_max以下である場合、処理はS254に進む。一方、平均値Bpが閾値Bp_max以下でない場合、処理はS255に進む。
(S254)切り替え判定部134は、表示部104に表示する画像を保持画像に設定する。つまり、切り替え判定部134は、表示方法を保持画像表示に設定する。S254の処理が完了すると、図19に示した一連の処理は終了する。
(S255)切り替え判定部134は、表示部104に表示する画像を撮像画像に設定する。つまり、切り替え判定部134は、表示方法をリアルタイム表示に設定する。S255の処理が完了すると、図19に示した一連の処理は終了する。
以上、変形例#3について説明した。
[2−8.変形例#4(ピント状態及び明度状態に基づく切り替え判定)]
次に、図20を参照しながら、第2実施形態の一変形例(変形例#4)について説明する。変形例#4は、変形例#2の仕組みと変形例#3の仕組みとを組み合わせる方法に関する。つまり、変形例#4では、情報処理装置100が有する機能のうち切り替え判定部134の機能が変形される。なお、図20は、第2実施形態の一変形例(変形例#4)に係る情報処理装置が実行する切り替え判定処理の流れを示したフロー図である。図20に示した処理は、主に制御部103が有する切り替え判定部134により実行される。
(S271)切り替え判定部134は、ピント状態に基づく判定処理を実行する。このとき、切り替え判定部134は、図17に示した変形例#2に係る切り替え判定処理を実行する。
(S272)切り替え判定部134は、表示を保持画像にするか否かを判定する。S271の処理で表示方法が保持画像表示に設定された場合、処理はS273に進む。一方、S271の処理で表示方法がリアルタイム表示に設定された場合、処理はS276に進む。
(S273)切り替え判定部134は、明度状態に基づく判定処理を実行する。このとき、切り替え判定部134は、図19に示した変形例#3に係る切り替え判定処理を実行する。
(S274)切り替え判定部134は、表示を保持画像にするか否かを判定する。S273の処理で表示方法が保持画像表示に設定された場合、処理はS275に進む。一方、S273の処理で表示方法がリアルタイム表示に設定された場合、処理はS276に進む。
(S275)切り替え判定部134は、表示部104に表示する画像を保持画像に設定する。つまり、切り替え判定部134は、表示方法を保持画像表示に設定する。S275の処理が完了すると、図20に示した一連の処理は終了する。
(S276)切り替え判定部134は、表示部104に表示する画像を撮像画像に設定する。つまり、切り替え判定部134は、表示方法をリアルタイム表示に設定する。S276の処理が完了すると、図20に示した一連の処理は終了する。
上記のように、変形例#4においては、ピントが合わなくなった状態又は光量が不足した状態になったタイミングで表示方法がリアルタイム表示から保持画像表示に切り替えられる。そのため、ピントが合っており、光量が充足している間はリアルタイム表示が行われ、保持画像から撮像範囲に対応する部分画像を切り出す処理の負荷が低減される。また、情報処理装置100の位置によらず良好なピント状態及び明度状態が維持されるため、シームレスな操作感をユーザに提供することができる。
以上、変形例#4について説明した。
[2−9.変形例#5(縮小判定に基づく撮像画像の記録)]
次に、図21〜図25を参照しながら、第2実施形態の一変形例(変形例#5)について説明する。変形例#5は、時系列で撮像された撮像画像の比較結果に基づく保持画像の選択方法に関する。つまり、変形例#5では、情報処理装置100が有する機能のうち画像記録部133の機能が変形される。
(撮像画像の記録機能)
図21〜図23を参照しながら、変形例#5に係る情報処理装置100が有する画像記録部133の機能について説明する。
なお、図21は、第2実施形態の一変形例(変形例#5)に係る情報処理装置が有する撮像画像の記録機能について説明するための第1の図である。図22は、第2実施形態の一変形例(変形例#5)に係る情報処理装置が有する撮像画像の記録機能について説明するための第2の図である。図23は、第2実施形態の一変形例(変形例#5)に係る情報処理装置が有する撮像画像の記録機能について説明するための第3の図である。
これまで、ユーザのシャッタ操作に応じて撮像画像が記憶部105に記録され、保持画像として保持されることを前提に説明を進めてきた。変形例#5では、画像記録部133が一定量の撮像画像を保持し、その中から設定した条件を満たす撮像画像を選択して保持画像とする方法を提案する。
変形例#5に係る画像記録部133は、図21に示すように、現時刻から予め設定した時間Te(例えば、2秒)前の時刻までに撮像された撮像画像I[1]、I[2]、…、I[n]を保持する。なお、I[n]は現時刻に撮像された撮像画像であり、I[1]は時間Te前の時刻に撮像された撮像画像である。
リアルタイム表示から保持画像表示へと表示方法が切り替わった場合に、画像記録部133は、切り替わった時刻(現時刻)の前に撮像された撮像画像I[n−1]を抽出する。そして、画像記録部133は、抽出した撮像画像I[n−1]の縮小画像となっていない撮像画像を過去に遡って探索する。
図21の例では、撮像画像I[n−1]、…、I[j+1]が撮像画像I[n−1]の縮小画像となっている。そのため、画像記録部133は、撮像画像I[n−1]の縮小画像となっていない撮像画像(以下、非縮小画像)として撮像画像I[j]を検出する。この場合、画像記録部133は、非縮小画像である撮像画像I[j]の後に撮像された撮像画像I[j+1]を保持画像として選択する。そして、画像記録部133は、選択した撮像画像I[j+1]を記憶部105に記憶させる。
このように、撮像画像の記録を自動化することで、情報処理装置100を対象物Mに近づける際にユーザがシャッタ操作を行わなくても保持画像が得られる。その結果、シャッタ操作を忘れるリスクや、シャッタ操作に失敗して保持画像表示への切り替えができなくなるリスクを回避することができる。また、対象物Mを含む広い撮影範囲に対応する保持画像が得られるため、保持画像表示の状態を維持しつつ情報処理装置100が移動できる範囲を広く確保することができる。
(縮小画像/非縮小画像の判別)
ここで、図22及び図23を参照しながら、縮小画像であるか否かを判別する方法について説明する。
まず、図22を参照する。図22の例では、撮像画像I[j+1]と撮像画像I[n−1]とを比較している。画像記録部133は、撮像画像I[n−1]から特徴点を抽出する。特徴点としては、例えば、端点、角、分岐点などが用いられる。特徴点の抽出方法としては、撮像画像I[n−1]を二値化し、細線化した後、隣接する画素間の配置から端点などを検出する方法が適用可能である。適用可能な例として、H.P.MoravecやC.Harrisのアルゴリズムなどがある。
図22の例では、5つの特徴点p1、…、p5が抽出されている。特徴点p1、…、p5の情報は、例えば、原点Oから特徴点p1、…、p5に延びるベクトルで表現される。以下では、特徴点p1、…、p5をそれぞれ特徴点ベクトルp1(x1,y1)、…、p5(x5,y5)と表現する場合がある。図22に示すように、撮像画像I[n−1]は、5つの特徴点ベクトルp1(x1,y1)、…、p5(x5,y5)により特徴付けられる。同様に、画像記録部133は、撮像画像I[j+1]から特徴点p6、…、p10を抽出し、特徴点ベクトルp6(x6,y6)、…、p10(x10,y10)により撮像画像I[j+1]を特徴付ける。
画像記録部133は、撮像画像I[n−1]から抽出した特徴点ベクトルp1(x1,y1)のr(r<1)倍となる特徴点ベクトルを撮像画像I[j+1]の特徴点ベクトルp6(x6,y6)、…、p10(x10,y10)から検出する。図22の例では、特徴点ベクトルp6(x6,y6)が特徴点ベクトルp1(x1,y1)のr1(r1=x6/x1=y6/y1)倍となっている。そのため、画像記録部133は、特徴点ベクトルp1(x1,y1)のr(r<1)倍となる特徴点ベクトルとして特徴点ベクトルp6(x6,y6)を検出する。
図22の例では、特徴点ベクトルp7(x7,y7)が特徴点ベクトルp2(x2,y2)のr2(r2=x7/x2=y7/y2)倍となっている。特徴点ベクトルp8(x8,y8)が特徴点ベクトルp3(x3,y3)のr3(r3=x8/x3=y8/y3)倍となっている。特徴点ベクトルp9(x9,y9)が特徴点ベクトルp4(x4,y4)のr4(r4=x9/x3=y9/y3)倍となっている。特徴点ベクトルp10(x10,y10)が特徴点ベクトルp5(x5,y5)のr5(r5=x10/x5=y10/y5)倍となっている。
そのため、画像記録部133は、特徴点ベクトルp2(x2,y2)のr(r<1)倍となる特徴点ベクトルとして特徴点ベクトルp7(x7,y7)を検出する。同様に、画像記録部133は、特徴点ベクトルp3(x3,y3)のr(r<1)倍となる特徴点ベクトルとして特徴点ベクトルp8(x8,y8)を検出する。さらに、画像記録部133は、特徴点ベクトルp4(x4,y4)のr(r<1)倍となる特徴点ベクトルとして特徴点ベクトルp9(x9,y9)を検出する。そして、画像記録部133は、特徴点ベクトルp5(x5,y5)のr(r<1)倍となる特徴点ベクトルとして特徴点ベクトルp10(x10,y10)を検出する。
画像記録部133は、撮像画像I[n−1]から抽出した特徴点ベクトルp1(x1,y1)のr(r<1)倍となる特徴点ベクトルが、撮像画像I[j+1]の特徴点ベクトルの中にいくつ存在するかを計算する。そして、画像記録部133は、計算した特徴点ベクトルの数qが設定した値Rv*nv以上であるか否かを判定する。但し、値Rv(Rv<1;例えば、Rv=0.7)は、予め設定した値である。nvは、撮像画像I[n−1]から抽出した特徴点の数である。
さらに、画像記録部133は、r1、r2、…の平均値r0を計算し、r1、r2、…とr0との差がそれぞれ±σ以内であるかを判定する。数qが値Rv*nv以上であり、かつ、r1、r2、…とr0との差がそれぞれ±σ以内である場合、画像記録部133は、撮像画像I[j+1]が撮像画像I[n−1]の縮小画像であると判断する。図23の例では、撮像画像I[j]の特徴点ベクトルp11(x11,y11)、…、p15(x15,y15)が、撮像画像I[n−1]の特徴点ベクトルp1(x1,y1)、…、p5(x5,y5)のr(r<1)倍となっていない。そのため、画像記録部133は、撮像画像I[j]が撮像画像I[n−1]の縮小画像でないと判断する(非縮小画像であると判断する)。
以上、縮小画像であるか否かを判別する方法について説明した。
(撮像画像の記録処理の流れ)
次に、図24及び図25を参照しながら、変形例#5に係る情報処理装置100が実行する撮像画像の記録処理の流れについて説明する。
(表示処理の全体的な流れ)
まず、図24を参照しながら、表示処理の全体的な流れについて説明する。図24は、第2実施形態の一変形例(変形例#5)に係る情報処理装置が実行する表示処理の流れを示したフロー図である。
(S301)撮像部102が対象物Mを撮像する。撮像部102により撮像された対象物Mの撮像画像は制御部103に入力される。
(S302)制御部103は、撮像画像をバッファに記録する。例えば、制御部103は、現時刻から予め設定した時間Te(例えば、2秒)前の時刻までに撮像された撮像画像I[1]、I[2]、…、I[n]をバッファに記録して保持する。なお、I[n]は現時刻に撮像された撮像画像であり、I[1]は時間Te前の時刻に撮像された撮像画像である。
(S303)制御部103は、保持画像を表示部104に表示させるか否かを判定する。保持画像を表示部104に表示させる場合(表示方法が保持画像表示に設定された場合)、処理はS304に進む。一方、保持画像を表示部104に表示しない場合(表示方法がリアルタイム表示に設定された場合)、処理はS310に進む。
(S304)制御部103は、バッファに記録した撮像画像I[1]、I[2]、…、I[n]から保持画像として記憶部105に記憶させる画像を選択する。そして、制御部103は、選択した画像を保持画像として記憶部105に記憶させる。
(S305)位置情報取得部101は、検知した加速度値から情報処理装置100の移動方向及び移動量を計算する。位置情報取得部101により計算された移動方向及び移動量を示す情報(移動情報)は制御部103に入力される。また、位置情報取得部101が検知した加速度値の情報も制御部103に入力される。
(S306、S307)制御部103は、入力された移動情報から基準位置を基準とする情報処理装置100の位置を計算する。また、制御部103は、視野角θ(図10(B)を参照)、現在位置のZ座標ZP、保持画像の幅Wに基づき、上記の式(1)に従って基準倍率Aを計算する。さらに、制御部103は、ユーザによる拡大操作又は縮小操作に応じて操作倍率Bを設定する。
(S308)制御部103は、上記の式(2)で定義される表示倍率Cを計算する。次いで、制御部103は、表示倍率Cに基づいて対象領域の幅C*W及び高さC*Hを計算する。また、制御部103は、移動情報(図10(C)の符号Vを参照)に基づき、対象領域の中心座標(XP,YP)を計算する。
(S309)制御部103は、記憶部105から保持画像を読み出す。次いで、制御部103は、S308で計算した対象領域の幅C*W及び高さC*H及び中心座標(XP,YP)に基づいて保持画像から対象領域に対応する部分画像を切り出す。次いで、制御部103は、切り出した部分画像を表示部104に表示させる。S309の処理が完了すると、処理はS311に進む。
(S310)制御部103は、撮像部102から入力された撮像画像を表示部104に表示させる。S310の処理が完了すると、処理はS311に進む。
(S311)アプリケーションプログラムを終了する操作が行われていない場合、処理はS301に戻る。一方、アプリケーションプログラムを終了する操作が行われた場合、図24に示した一連の処理は終了する。
(撮像画像の記録処理の流れ)
ここで、図25を参照しながら、撮像画像の記録処理(保持画像の選択・記録処理)の流れについて、さらに説明する。この処理は、図24に示したS304の処理に対応する。図25は、第2実施形態の一変形例(変形例#5)に係る情報処理装置が実行する撮像画像の記録処理の流れを示したフロー図である。なお、図25に示す記録処理は、主に制御部103が有する画像記録部133により実行される。
(S321)画像記録部133は、表示方法の判定処理前における表示が保持画像表示であるか否かを判定する。判定処理前の表示方法が保持画像表示である場合、図25に示した一連の処理は終了する。一方、判定処理前の表示方法がリアルタイム表示である場合、処理はS322に進む。
(S322)画像記録部133は、リアルタイム表示から保持画像表示へと表示方法が切り替わった時刻(現時刻)の前に撮像された撮像画像I[n−1]を抽出する。そして、画像記録部133は、撮像画像I[n−1]の特徴点を抽出する。
(S323)画像記録部133は、インデックスjの初期値を設定する。このとき、j=n−1とされる。
(S324)画像記録部133は、インデックスjの値を更新する。このとき、j=j−1とされる。
(S325)画像記録部133は、インデックスjが1より大きいか否かを判定する。インデックスjが1より大きい場合(j>1)、処理はS327に進む。一方、インデックスjが1より大きくない場合、処理はS326に進む。
(S326)画像記録部133は、バッファに記録しておいた撮像画像I[1]を選択する。S326の処理が完了すると、図25に示した一連の処理は終了する。
(S327)画像記録部133は、撮像画像I[j]の特徴点を抽出する。
(S328)画像記録部133は、撮像画像I[n−1]の特徴点と撮像画像I[j]の特徴点とを比較する。例えば、画像記録部133は、図22及び図23に示した判別方法により、特徴点の比較から撮像画像I[j]が撮像画像I[n−1]の縮小画像であるか否かを確認する。
(S329)撮像画像I[j]が撮像画像I[n−1]の縮小画像である場合、処理はS330に進む。一方、撮像画像I[j]が撮像画像I[n−1]の縮小画像でない場合、処理はS324に戻る。
(S330)画像記録部133は、バッファに記録した撮像画像I[j+1]を選択する。そして、画像記録部133は、選択した撮像画像I[j+1]を保持画像として記憶部105に記憶させる。S330の処理が完了すると、図25に示した一連の処理は終了する。
以上、変形例#5について説明した。
[2−10.変形例#6(加速度判定に基づく撮像画像の記録)]
次に、図26〜図28を参照しながら、第2実施形態の一変形例(変形例#6)について説明する。変形例#6は、加速度値の変化に応じた保持画像の選択方法に関する。つまり、変形例#6では、情報処理装置100が有する機能のうち画像記録部133の機能が変形される。
(撮像画像の記録機能)
図26及び図27を参照しながら、変形例#6に係る情報処理装置100が有する画像記録部133の機能について説明する。
なお、図26は、第2実施形態の一変形例(変形例#6)に係る情報処理装置が有する撮像画像の記録機能について説明するための第1の図である。図27は、第2実施形態の一変形例(変形例#6)に係る情報処理装置が有する撮像画像の記録機能について説明するための第2の図である。
変形例#6では、上記の変形例#5と同様に、画像記録部133が一定量の撮像画像を保持し、その中から設定した条件を満たす撮像画像を選択して保持画像とする方法を提案する。但し、変形例#5では撮像画像の変化に基づいて撮像画像の選択を行う方法を提案したが、変形例#6では加速度変化に基づいて撮像画像の選択を行う方法を提案する。
変形例#6に係る画像記録部133は、図26に示すように、現時刻から予め設定した時間Te(例えば、2秒)前の時刻までに撮像された撮像画像I[1]、I[2]、…、I[n]を保持する。なお、I[n]は現時刻に撮像された撮像画像であり、I[1]は時間Te前の時刻に撮像された撮像画像である。さらに、画像記録部133は、位置情報取得部101から取得した加速度値ax,ay,azを撮像画像I[1]、I[2]、…、I[n]に対応付けて保持する。
リアルタイム表示から保持画像表示へと表示方法が切り替わった場合に、画像記録部133は、切り替わった時刻(現時刻)以前に撮像された撮像画像I[k](k=1,…,n−1)に対応する加速度値ax,ay,azを参照する。さらに、画像記録部133は、過去に遡りながら加速度値ax,ay,azの変化量dAを調査する。
このとき、画像記録部133は、加速度値ax,ay,azそれぞれの変化量dax,day,dazを下記の式(11)〜式(13)に従って計算する。なお、ax[j]は、撮像画像I[j]の撮像時刻におけるX軸方向の加速度値を表す。同様に、ay[j]は、撮像画像I[j]の撮像時刻におけるY軸方向の加速度値を表す。az[j]は、撮像画像I[j]の撮像時刻におけるZ軸方向の加速度値を表す。そして、画像記録部133は、変化量dax,day,dazの最大値を選択し、選択した最大値を変化量dAとする。
画像記録部133は、変化量dAが予め設定した値dA_maxを超えた時刻の次に撮像された撮像画像を保持画像として記憶部105に記憶させる。図26の例では、撮像画像I[j]の撮像時刻で加速度値の変化量dAが値dA_maxを超えたため、撮像画像I[j+1]が保持画像として記憶部105に記録される。
このように、撮像画像の記録を自動化することで、情報処理装置100を対象物Mに近づける際にユーザがシャッタ操作を行わなくても保持画像が得られる。その結果、シャッタ操作を忘れるリスクや、シャッタ操作に失敗して保持画像表示への切り替えができなくなるリスクを回避することができる。また、対象物Mを含む広い撮影範囲に対応する保持画像が得られるため、保持画像表示の状態を維持しつつ情報処理装置100が移動できる範囲を広く確保することができる。
(撮像画像の記録処理の流れ)
次に、図28を参照しながら、変形例#6に係る情報処理装置100が実行する撮像画像の記録処理の流れについて説明する。この処理は、図24に示したS304の処理に対応する。但し、撮像画像と共に加速度値がバッファに記録されるものとする。なお、図28は、第2実施形態の一変形例(変形例#6)に係る情報処理装置が実行する撮像画像の記録処理の流れを示したフロー図である。
(S351)画像記録部133は、表示方法の判定処理前における表示が保持画像表示であるか否かを判定する。判定処理前の表示方法が保持画像表示である場合、図28に示した一連の処理は終了する。一方、判定処理前の表示方法がリアルタイム表示である場合、処理はS352に進む。
(S352)画像記録部133は、インデックスjの初期値を設定する。このとき、j=n−1とされる。
(S353)画像記録部133は、インデックスjの値を更新する。このとき、j=j−1とされる。
(S354)画像記録部133は、インデックスjが1より大きいか否かを判定する。インデックスjが1より大きい場合(j>1)、処理はS356に進む。一方、インデックスjが1より大きくない場合、処理はS355に進む。
(S355)画像記録部133は、バッファに記録しておいた撮像画像I[1]を選択する。S355の処理が完了すると、図28に示した一連の処理は終了する。
(S356、S357)画像記録部133は、加速度値ax,ay,azそれぞれの変化量dax,day,dazを上記の式(11)〜式(13)に従って計算する。そして、画像記録部133は、変化量dax,day,dazの最大値dAを選択する。
(S358)画像記録部133は、最大値dAが設定値dA_maxより大きいか否かを判定する。最大値dAが設定値dA_maxより大きい場合、処理はS359に進む。一方、最大値dAが設定値dA_maxより大きくない場合、処理はS353に戻る。
(S359)画像記録部133は、バッファに記録した撮像画像I[j+1]を選択する。そして、画像記録部133は、選択した撮像画像I[j+1]を保持画像として記憶部105に記憶させる。S359の処理が完了すると、図28に示した一連の処理は終了する。
以上、変形例#6について説明した。
以上、第2実施形態について説明した。
これまで添付図面を参照しながら好適な実施形態について説明してきたが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、様々な変形例や修正例に想到し得ることは明らかであり、こうした変形例や修正例についても当然に本発明の技術的範囲に属することは言うまでもない。
例えば、保持画像表示に切り替えた場合に、保持画像に他の情報を重畳して表示するなどの表示方法が考えられる。一例として、地図を対象物Mとするケースについて考える。地図には、様々な道路や施設などの情報が含まれる。そのため、情報処理装置100を地図に近づけて拡大表示するだけでは所望の情報を素早く見つけられない場合がある。
そこで、保持画像表示に切り替えた場合に、保持画像に画像処理を施して特定の色彩を強調表示する方法を適用すれば、地図上にある特定の道路や施設が強調表示され、強調表示の部分を目印に所望の情報を素早く見つけることができるようになる。例えば、緑色を強調表示する設定にすれば、高速道路及びその入り口表示などが強調表示され、場所の特定や地域の判別を効率化することができると期待される。このような変形例についても当然に上記の技術的範囲に属する。