以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る情報処理システムの構成を示す図である。図1(a)に示すように、本実施形態に係る情報処理システムは、入力装置101、表示装置102、制御装置103及び記憶装置104により構成される。図1の例では、101〜104を独立した装置で構成しているが、これらの装置の機能を単一の装置内に備える構成であってもよい。
複数オブジェクト指定部105は、ユーザによるタッチ入力を受け付ける。1箇所のタッチや複数箇所のタッチのほか、ドラッグ(タッチしたまま指でずらす操作)やフリック(タッチした指を軽くはらう操作)の検出を行う。また、複数オブジェクト指定部105は、タッチ、ドラッグ及びフリック時の圧力の検出も行う。なお、タッチパネルの代わりにマウスや音声等の入力手段を用い、タッチ入力の代わりにクリック操作や音声入力を用いてもよい。
表示部106は、画像データ、テキストデータ等を表示する。選択操作判定部107は、画像データ中のオブジェクトが選択されたか否かを判定する。オブジェクト特定部108は、選択操作判定部107によって選択されたと判定されたオブジェクトを特定する。
特徴抽出部109は、オブジェクト特定部108によって特定されたオブジェクトの特徴を抽出する。オブジェクトの特徴は様々な捉え方があるが、例えば、人、物、色、形、大きさ等が挙げられる。本実施形態では、タッチされた箇所と後述の特徴データ112とからオブジェクトの特徴を抽出するが、既存の画像認識技術を用いてもよい。
画像検索部110は、特徴抽出部109により抽出されたオブジェクトの特徴に基づいて、記憶装置104に記憶された画像データ群111から画像データを検索したり、特徴の類似度に基づいて、画像データ群111を並び替える処理を実行する。また、画像検索部110は、表示させる画像データを選択し、表示部106に表示させる。
図1(b)に示すように、特徴データ112は、画像データのIDと当該画像データのオブジェクトの領域情報と当該オブジェクトの特徴情報とを対応付けたデータである。上述した通り、オブジェクトの特徴としては、例えば、人、物、色、形、大きさ等が挙げられる。なお、特徴データ122は、テキスト、リスト、XML等で構成することができる。履歴情報113は、ユーザが操作した履歴やその結果(各構成の判定結果や抽出結果等)を示す情報である。履歴参照部114は、履歴情報113を参照する。
図2は、本実施形態に係る情報処理システムのハードウェア構成の一部を示す図である。図2に示すように、本実施形態に係る情報処理システムは、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、タッチパネル204及びLCD(Liquid Crystal Display)205がシステムバス206によって接続されている。
図1における複数オブジェクト指定部105は、図2のタッチパネル204等から構成される。また、図1における表示部106は、図2のLCD205等から構成される。選択操作判定部107、オブジェクト特定部108、特徴抽出部109、画像検索部110及び履歴参照部114は、CPU201がROM203に記憶されたプログラムやデータをRAM202に読み出し、実行することにより得られる構成である。記憶装置104は、RAM202等によって構成される。
図3は、画像データ群111の一例を示す図である。図3では、画像データ群111として、画像データ1〜画像データ10の10枚の画像データを示している。画像検索部110は、図4に示すように、表示順に基づいて画像データ群111を表示部106に表示させる。本実施形態では、図3に示す画像データ群111の表示順を、画像データ1、画像データ2、・・・、画像データ9、画像データ10、画像データ1、画像データ2、・・・と定めている。従って、図4に示すように、表示部106においては、画像データ群111のうちの5枚の画像データが表示されるが、5枚の画像データは上記表示順に従って表示されることになる。具体的には、図4(a)に示すように、表示部106の左側から、画像データ9、画像データ10、画像データ1、画像データ2、画像データ3の順序で表示される。或いは、図4(b)に示すように、表示部106の左側から、画像データ1、画像データ2、画像データ3、画像データ4、画像データ5の順序で表示される。なお、アプリケーション起動時における画像データの表示順は、日付順や名前順等、アプリケーションで定められた規則に基づいて定められる。また、図4(a)の例では、表示順が最も高い画像データ1が真中に位置するようにしているが、図4(b)に示すように、表示順の最も高い画像データ1が一番左に位置するようにしてもよい。なお、表示順の最も高い画像データの表示位置はアプリケーションによって定められる。また、アプリケーション起動時の画像データの表示順や表示順の最も高い画像データの表示位置は、ユーザがアプリケーションを通じて設定できるようにしてもよい。
また、表示部106は、複数オブジェクト指定部105を介してタッチできるようになっており、1箇所のタッチや複数箇所のタッチが可能である。また、ドラッグ(タッチしたまま指でずらす操作)、フリック(タッチした指を軽くはらう操作)も可能である。本実施形態では、画像ブラウジング時に画像データがドラッグ又はフリック(以下では、はフリックについてのみ説明する)されると、画像データの表示切り替えが指示されたと解釈し、画像データの表示切り替えが実行される。
次に、図5及び図6を参照しながら、画像ブラウジング時にフリックされたときの動作例について説明する。図5及び図6では、タッチされた箇所を黒丸501、601、ドラッグ又はフリックの方向を矢印502、602で示している。図5(a)に示すように、画像データ1がタッチされ、左方向にフリックされると、図5(b)に示すように、画像データ群111が左方向に移動するように画像データの表示切り替えが行われる。また、図6(a)に示すように、画像データ1がタッチされ、右方向にフリックされると、図6(b)に示すように、画像データ群111が右方向に移動するように画像データの表示切り替えが行われる。
このとき、画像データ中のオブジェクトが選択されない状態で画像データの表示切り替えが指示された場合、画像データの表示順を保ったまま、画像データの表示切り替えが行われる。一方、画像データ中の1つ以上のオブジェクトが選択された状態で画像データの表示切り替えが指示された場合、選択されたオブジェクトの特徴に基づいて画像データの表示順が変更されて画像データの表示切り替えが行われる。即ち、本実施形態においては、画像データ中のオブジェクトが選択されない状態で画像データの表示切り替えが指示されたのか、画像データ中のオブジェクトが選択された状態で画像データの表示切り替えが指示されたのかの判定が必要になる。そこで、本実施形態においては、上記の判定を選択操作判定部107にて実行する。
次に、図7を参照しながら、選択操作判定部107の処理について説明する。図7は、選択操作判定部107の処理を示すフローチャートである。ここでは、画像データがタッチされた時刻をTt、画像データがフリックされた時刻をTfとする。これらの時刻は複数オブジェクト指定部105によって取得される情報であり、履歴情報113として記憶装置104に記憶される。ステップS901において、選択操作判定部107は、履歴情報113である、画像データがタッチされた時刻(タッチ時刻)Ttと、画像データがフリックされた時刻(フリック時刻)Tfとを、履歴参照部114を介して記憶装置104から取得する。
ステップS702において、選択操作判定部107は、タッチ時刻Ttとフリック時刻Tfとに基づいて、オブジェクトの選択操作であるか否かを判定する。具体的には、タッチ時刻Ttからフリック時刻Tfまでの時間間隔が短い、即ち、(Tf−Tt)が所定の時間間隔(例えば、0.1秒)以下であれば、選択操作判定部107は、画像データ中のオブジェクトが選択されない状態で画像データの表示切り替えが指示されたと判定する。一方、タッチ時刻Ttからフリック時刻Tfまでの時間間隔が或る程度長い、即ち、(Tf−Tt)が所定の時間間隔(例えば、0.1秒)より長ければ、選択操作判定部107は、画像データ中のオブジェクトが選択された状態で画像データの表示切り替えが指示されたと判定する。また、複数箇所(N箇所)がタッチされた場合、これらが同時にタッチされ、且つ、上記のようにタッチ時刻Ttからフリック時刻Tfまでの時間間隔が短ければ、選択操作判定部107は、画像データ中のオブジェクトが選択されない状態で画像データの表示切り替えが指示されたと判定する。
なお、複数箇所(N箇所)が同時にタッチされたか否かについては、全てのタッチ時刻の差がほとんどないか否かで判定される。次に、図8を参照しながら、複数箇所(N箇所)が同時にタッチされたか否かの判定処理について説明する。図8は、複数箇所(N箇所)が同時にタッチされたか否かの判定処理を示すフローチャートである。ステップS801において、選択操作判定部107は、それぞれのタッチ時刻をTt1、Tt2、Tt3、・・・、TtNとして設定する。ステップS802において、選択操作判定部107は、変数nに1を代入する。ステップS803において、選択操作判定部107は、変数mにn+1を代入する。ステップS804において、選択操作判定部107は、N<n又はN<mの条件を満たすか否かを判定する。N<n又はN<mの条件を満たす場合、処理はステップS808に移行する。一方、N<n及びN<mの何れの条件も満たさない場合、処理はステップS805に移行する。ステップS808において、選択操作判定部107は、複数箇所が同時にタッチされたと判定する。
ステップS805において、選択操作判定部107は、時刻Ttmと時刻Ttnとの差が十分小さいか否か、即ち、時刻Ttmと時刻Ttnとの差の絶対値が所定の値(例えば、0.01秒)より小さいか否かを判定する。時刻Ttmと時刻Ttnとの差が十分小さい場合、処理はステップS806に移行する。一方、時刻Ttmと時刻Ttnとの差が十分小さくない場合、処理はステップS807に移行する。ステップS806において、選択操作判定部107は、nを1加算する。そして、処理はステップS803に戻る。ステップS807において、選択操作判定部107は、複数箇所が同時にタッチされていないと判定する。
以上のように、複数箇所が同時にタッチされたか否かを判定し、同時にタッチされたと判定された場合、時刻Ttm及び時刻Ttnのうちの何れか、又は、時刻Ttmと時刻Ttnとの平均値をTtとする。また、画像データがフリックされた時刻をTfとすると、(Tf−Tt)が所定の時間間隔(例えば、0.1秒)以下であれば、選択操作判定部107は、画像データ中のオブジェクトが選択されない状態で画像データの表示切り替えが指示されたと判定する。一方、(Tf−Tt)が所定の時間間隔(例えば、0.1秒)より長ければ、選択操作判定部107は、画像データ中のオブジェクトが選択された状態で画像データの表示切り替えが指示されたと判定する。
以上により、ユーザがオブジェクトを選択しない場合はタッチ時刻からフリック時刻までの時間間隔が短いという自然な操作に基づく判定が可能になる。
次に、図9〜図12を参照しながら、画像ブラウジングを行う際の処理について説明する。図9は、画像ブラウジングの際の処理を示すフローチャートである。図10〜図12は、画像データ群111の表示状態等を示す図である。即ち、図10(a)、図11(a)、図12(a)は何れも、三角や丸の特徴をもつオブジェクトを含む画像データ群111を示しており、図10(b)、図11(b)、図12(b)に表示部106における画像データの表示状態を示している。図10(c)は、画像データの分割例を示している。図10(c)の例では、画像データを縦方向に2分割、横方向に2分割し、画像データに対してA、B、C、Dの4つの領域を定義している。図10(d)は、このように画像データに対して4つの領域を定義した場合の特徴データ112の例を示している。「ID」の欄には、画像データのIDが定義され、「オブジェクトの領域情報」の欄には、オブジェクトが領域A〜Dのどの領域に属しているかが定義され、「特徴情報」の欄には、オブジェクトの特徴が定義されている。図11(b)、図12(b)の黒丸1101、1201は、ユーザにタッチされた箇所を示している。図11(c)、図12(c)は、タッチされた箇所に対応するオブジェクトの特徴情報を示している。
ステップS901において、画像検索部110は、表示順に基づいて画像データ群111を表示部106に表示させる。上記表示順は、日付順や名前順等、アプリケーションで定められた規則に基づいて定められる。また、この最初の順序は、ユーザがアプリケーションを通じて設定できるようにしてもよい。図10(a)の例では、画像データ群111は日付順に並んでおり、図10(b)に示すように、表示部106の左側から、最後の2枚の画像データ(画像データ9、画像データ10)と最初の3枚の画像データ(画像データ1、画像データ2、画像データ3)とが表示されている。
ステップS902において、選択操作判定部107は、複数オブジェクト指定部105から1つ以上のタッチ入力が通知されたか否かを判定する。1つ以上のタッチ入力が通知された場合、処理はステップS903に移行する。一方、1つ以上のタッチ入力が通知されなかった場合、複数オブジェクト指定部105からタッチ入力が通知されるまで待機する。
ステップS903において、オブジェクト特定部107は、選択操作判定部107によりオブジェクトが選択されたと判定された場合、当該オブジェクトを特定する。そして特徴抽出部109は、そのオブジェクトの特徴を抽出する。具体的には、オブジェクト特定部107は、タッチされた箇所が画像データ中のどの位置にあるかを算出し、更に特徴データ112を参照して、タッチされた箇所が画像データ中のどのオブジェクトに属するかを判定する。特徴データ112にはオブジェクトの領域情報が含まれているため、画像データ中における任意の位置についてどのオブジェクトが属しているかを容易に判定することができる。また、複数の箇所がタッチされていて、その位置がそれぞれ異なるオブジェクトに属する場合、複数のオブジェクトが選択されたことになる。また、複数の箇所がタッチされていて、その位置が何れも同一のオブジェクトに属する場合、1つのオブジェクトが選択されたことになる。選択されたオブジェクトが特定されると、特徴抽出部109は、選択されたオブジェクトの特徴を抽出する。特徴データ112には、オブジェクトの領域情報とオブジェクトの特徴情報とが対応付けられているので、選択されたオブジェクトの特徴を抽出することができる。複数のオブジェクトが選択された場合、全てのオブジェクトに関してそれぞれ特徴が抽出される。なお、特徴データ112が与えられていない場合には、既存の画像認識技術を利用することにより、画像データの任意の位置におけるオブジェクト(人や物等)及びその特徴(名前、色、形等)を認識して取得することができる。図11の例では、図11(c)に示すように丸という特徴が抽出される。また、図12の例では、図12(c)に示すように三角という特徴が抽出される。
また、本実施形態においては、特定したオブジェクトの画像データ上の領域情報を取得することができるため、その領域に色を付ける、オブジェクトの縁取りをする等、画像データ上のオブジェクトを目立たせるようにしてもよい。またオブジェクトがもつ特徴(文字列)を画像データ上に重畳して表示させてもよい。
ステップS904において、画像検索部110は、オブジェクト特定部108によってオブジェクトが特定され、且つ、特徴抽出部109によって特徴が抽出されたか否かを判定する。タッチされた位置が何れのオブジェクトにも属さず、これにより、オブジェクトが特定されず、特徴が抽出されなかった場合、処理はステップS906に移行する。一方、タッチされた位置が何れかのオブジェクトに属し、これにより、オブジェクトが特定され、特徴が抽出された場合、処理はステップS905に移行する。
ステップS905において、画像検索部110は、画像データ群111について特徴の類似度を算出し、その類似度に基づいて画像データ群111を検索し、検索結果に応じて画像データの表示順を変更する。ここでは、画像データ群111を類似度の高い順に検索し、並び替える。実際に画像データ群111を並び替えてもよいし、表示順を示す値を更新してもよい。特徴の類似度は、画像データにその特徴をもつオブジェクトがどのくらい含まれているかを表す値である。例えば、当該特徴をもつオブジェクトの数やオブジェクトの面積の他、認識尤度等を利用してもよい。図11の例では、画像検索部110は、図10(d)に示す特徴データ112を参照することにより、丸という特徴をもつオブジェクトを含む画像データ1、4、8の類似度を高くして、図11(a)に示すように画像データを並び変えている。図11(a)の例では、丸という特徴をもつオブジェクトを含む画像データ内での優先度、及び、丸という特徴をもつオブジェクトを含まない画像データ内での優先度は、並び替える前の順序を保っているが、これに限らない。例えば同じ特徴をもつオブジェクトを含む画像データ内において日付順に並べるようにしてもよい。
また、特徴が複数ある場合、その複数の特徴のAND(論理積)に基づく類似度に応じて画像データ群111を並べ替えてもよい。さらに、複数の特徴のANDではなくOR(論理和)に基づく類似度に応じて画像データ群111を並べ替えるようにしてもよい。特徴が複数の場合にANDに基づくかORに基づくかはユーザがアプリケーションを通じて設定できるようにしてもよい。
ステップS906において、選択操作判定部107は、タッチ入力に変更があったか否かを判定する。即ち、選択操作判定部107は、上述したステップS902で検知したタッチ入力の状態と比較し、タッチ入力の状態が異なる場合、処理はステップS907に移行する。一方、上述したステップS902で検知されたタッチ入力の状態と同一の場合、処理はステップS908に移行する。なお、タッチ入力の状態が異なるとは、例えば「タッチ入力が1つから2つになった」、「タッチ入力が2つから1つになった」等の入力数の増減のほか、タッチ位置の変更等が挙げられる。ここでタッチ位置の変更とは、ドラッグやフリックとは異なり、ある位置のタッチが解除され、再び別の位置がタッチされることを意味する。
ステップS907において、画像検索部110は、前段のステップS905にて画像データの表示順を変更した場合、画像データの表示順を元に戻す。一方、前段のステップS905において画像データの表示順を変更していない場合、画像検索部110は何も処理を行わない。そして、処理はステップS902に戻る。
ステップS908において、画像検索部110は、画像データの表示切り替えの指示があったか否かを判定する。上述した通り、本実施形態では、画像ブラウジング時に画像データ上でフリックされると、画像データの表示切り替えの指示があったと解釈する。このため、複数オブジェクト指定部105からフリックが行われたことが通知された場合、処理はステップS909に移行する。一方、フリックが行われたことが通知されなかった場合、処理はステップS906に移行する。ステップS909において、画像検索部110は、表示順に基づいて画像データ群111を表示部106に表示させる。
なお、アプリケーションから終了の指示があった場合、何れのステップにおいても割り込み処理によりアプリケーションを終了する。また、選択操作判定部107の処理は上述した処理に限らない。例えば以下のような処理が挙げられる。以下に説明する選択操作判定部107の処理は、図9の処理と並行に行われる。
先ず、選択操作判定部107の第1の変形例について説明する。上述したようにタッチ時刻からフリック時刻までの時間間隔を用いた場合、その時間間隔が短いか否かはユーザによって異なる場合がある。第1の変形例では、図7のステップS701において、選択操作判定部107は、履歴情報113である、今回のタッチ時刻及びフリック時刻と、過去のタッチ時刻からフリック時刻までの時間間隔とを参照する。ステップS702において、選択操作判定部107は、今回のタッチ時刻からフリック時刻までの時間間隔を算出し、当該時間間隔が過去のタッチ時刻からフリック時刻までの時間間隔と同じ、又は、当該時間間隔と過去のタッチ時刻からフリック時刻までの時間間隔との差が所定の値(例えば、0.1秒)以下であれば、オブジェクトが選択されたと判定する。一方、上記の条件を満たさない場合、選択操作判定部107は、オブジェクトは選択されていないと判定する。さらに、選択操作判定部107は、その判定結果を今回のタッチ時刻からフリック時刻までの時間間隔と対応付けて履歴情報113として記憶装置104に記憶させておき、次回以降の判定に利用する。また、判定の際に用いられる過去のタッチ時刻からフリック時刻までの時間間隔は、例えば数分以内の履歴情報113に限ってもよい。これにより、タッチ時刻からフリック時刻までの時間間隔を個々のユーザ毎にカスタマイズすることができる。
次に、選択操作判定部107の第2の変形例について説明する。ユーザがオブジェクトを選択するのにはある程度時間がかかる。このため、一つ前のフリック時刻から今回のフリック時刻までの時間間隔が十分短い場合、オブジェクトを選択していないとみなすことができる。本変形例では、図7のステップS701において、選択操作判定部107は、履歴情報113である、今回のフリック時刻と一つ前のフリック時刻とを参照する。ステップS702において、選択操作判定部107は、今回のフリック時刻と一つ前のフリック時刻との時間間隔を算出し、その時間間隔が所定の値(例えば、0.5秒)以下である場合、オブジェクトは選択されていないと判定する。一方、当該時間間隔が所定の値(例えば、0.5秒)より長ければ、選択操作判定部107は、オブジェクトが選択されたと判定する。これにより、ユーザはオブジェクトを選択しない場合には早く画像データを切り替えるという自然な操作に基づく判定が可能になる。
次に、選択操作判定部107の第3の変形例について説明する。ユーザが画像データを閲覧するときはある一定の時間間隔で画像データの表示を切り替えることが多い。一方、何かを注視したり、特定の操作をしたりする場合に時間間隔が一定でなくなることがある。オブジェクトの選択もこの中の1つである。このような事情を考慮し、本変形例では、フリック時刻の時間間隔が一定でない場合にオブジェクトが選択されたと判定する。即ち、ステップS701において、選択操作判定部107は、履歴情報113である、今回のフリック時刻と一つ前のフリック時刻とを参照する。ステップS702において、選択操作判定部107は、今回のフリック時刻と一つ前のフリック時刻との時間間隔を算出する。当該時間間隔が過去のフリック時刻の時間間隔の平均値と同じ、又は、当該時間間隔と過去のフリック時刻の時間間隔の平均値との差が所定の値(例えば、0.5秒)以下である場合、選択操作判定部107は、オブジェクトは選択されていないと判定する。一方、当該時間間隔と過去のフリック時刻の時間間隔の平均値との差が所定の値(例えば、0.5秒)より長い場合、選択操作判定部107は、オブジェクトが選択されたと判定する。また、判定の際に用いられる過去のフリック時刻の時間間隔の平均値は、例えば数分以内の下記のフリック時刻の時間間隔の平均値に限ってもよい。これにより、ユーザがオブジェクトを選択するときに画像データの表示切り替えが一定の時間間隔でなくなるという自然な操作に基づく判定が可能になる。
次に、選択操作判定部107の第4の変形例について説明する。上記の第3の変形例の場合、オブジェクトを選択した後の1回目のフリック時の判定が難しい。そこで、本変形例では、過去のタッチ時刻からフリック時刻までの時間間隔と選択操作判定部107の判定結果とを対応付けて履歴情報113として記憶装置104に記憶させておく。そして、ステップS701において、選択操作判定部107は、履歴情報113である、過去のタッチ時刻からフリック時刻までの時間間隔と選択操作判定部107の判定結果とを参照する。ステップS702において、選択操作判定部107は、今回のタッチ時刻からフリック時刻までの時間間隔が、オブジェクトが選択されたと判定された場合における過去のタッチ時刻からフリック時刻までの時間間隔の平均値と同じ、又は、今回のタッチ時刻からフリック時刻までの時間間隔と上記過去のタッチ時刻からフリック時刻までの時間間隔の平均値との差が所定の値(例えば0.1秒)以下であれば、オブジェクトが選択されたと判定する。一方、上記の条件を満たさない場合、選択操作判定部107は、オブジェクトが選択されていないと判定する。また、判定の際に用いられる過去のフリック時刻の時間間隔は、例えば数分以内の履歴情報113に限ってもよい。これにより、ユーザがオブジェクトを選択するときに画像データの表示切り替えが一定間隔でなくなるという自然な操作に基づく判定が可能になる。
次に、選択操作判定部107の第5の変形例について説明する。一般的に、ユーザがタッチして何かを選択する場合、特にタッチで複数選択する場合は、単にフリックするよりも圧力がかかる。そこで、本変形例における選択操作判定部107は、タッチ又はフリックの圧力が所定の値以上である場合、オブジェクトが選択されたと判定し、当該圧力が所定の値未満である場合、オブジェクトは選択されていないと判定する。これにより、オブジェクトを選択するときに圧力がかかるというユーザの自然な操作に基づく判別が可能になる。
次に、選択操作判定部107の第6の変形例について説明する。第5の変形例のように圧力を用いた場合、その圧力が大きいかどうかはユーザによって異なる場合がある。そこで、本変形例では、過去のタッチ又はフリックの圧力と選択操作判定部107の判定結果とを対応付けて履歴情報113として記憶装置104に記憶させておく。そして、ステップS701において、選択操作判定部107は、履歴情報113である、今回のタッチ又はフリックの圧力と過去のタッチ又はフリックの圧力とを参照する。ステップS702において、選択操作判定部107は、今回のタッチ又はフリックの圧力が、オブジェクトが選択されたと判定された場合における過去のタッチ又はフリックの圧力の平均値と同じ、又は、今回のタッチ又はフリックの圧力と上記過去のタッチ又はフリックの圧力の平均値との差が所定の値以下であれば、オブジェクトが選択されたと判定する。一方、上記の条件を満たさない場合、選択操作判定部107は、オブジェクトは選択されていないと判定する。なお、今回の判定結果とタッチ又はフリックの圧力とは履歴情報113として記憶され、次回以降の判定の際に使用される。また、判定の際に用いられる過去のタッチ又はフリックの圧力は、例えば数分以内の履歴情報113に限ってもよい。これにより、圧力の大きさを個々のユーザ毎にカスタマイズすることができる。
次に、選択操作判定部107の第7の変形例について説明する。ユーザがオブジェクトを選択せずに画像データを閲覧するときは、連続してタッチされる箇所の総数(例えばタッチする指の数)は一定であることが多い。一方、オブジェクトを指定する場合は複数指定することがあるため、タッチ又はフリックされる箇所の総数は変化することがある。このような事情を考慮し、本変形例では、ステップS901において、選択操作判定部107は、履歴情報113である、過去のタッチ又はフリックされた箇所の総数を参照する。ステップS902において、選択操作判定部107は、今回タッチ又はフリックされた箇所の総数が、直前の幾つかの入力(例えば、直前の5入力)においてタッチ又はフリックされた箇所の総数と同じである場合、オブジェクトは選択されていないと判定する。一方、今回タッチ又はフリックされた箇所の総数が、直前の幾つかの入力(例えば、直前の5入力)においてタッチ又はフリックされた箇所の総数と異なる場合、選択操作判定部107は、オブジェクトが選択されたと判定する。この場合、上述した図9のステップS902の時点で画像データ中のオブジェクトが選択されない状態で画像データの表示切り替えが指示されたと判定することができるので、ステップS903に移行する必要がない。これにより、ユーザがオブジェクトを選択しないときはタッチする箇所の総数が変化しないというユーザの自然な操作に基づく判定が可能になる。
次に、選択操作判定部107の第8の変形例について説明する。ユーザがオブジェクトを選択せずに画像データを閲覧する場合、ある特定の領域を連続してタッチ又はフリックして画像データを切り替えられることが多い。一方、オブジェクトを選択する場合、ある特定の領域を連続してタッチすることは少ない。この場合、ステップS701において、選択操作判定部107は、履歴情報113である、過去のタッチ又はフリックされた箇所の情報(例えば座標情報)を参照する。ステップS702において、選択操作判定部107は、今回タッチ又はフリックされた箇所が過去にタッチ又はフリックされた箇所から所定の範囲内にある場合、オブジェクトは選択されていないと判定する。一方、上記の条件を満たさない場合、選択操作判定部107は、オブジェクトが選択されたと判定する。なお、判定の際に用いられる過去にタッチ又はフリックされた箇所の情報は、例えば数分以内の履歴情報113に限ってもよい。また、上記所定の範囲内とは、個々の画像データ上の座標ではなく、画像データが表示されている画面全体(表示部106)又はタッチパネル全体の中の座標を意味する。これにより、ユーザがオブジェクトを選択しないときはある特定の領域を連続してタッチ及びフリックするというユーザの自然な操作に基づく判定が可能になる。
次に、選択操作判定部107の第9の変形例について説明する。ユーザがオブジェクトを選択せずに画像データを閲覧するときは指の配置パターンが自然である。一方、オブジェクトの配置は指の自然な配置とは一致しないことが多いため、オブジェクトを選択する場合の指の配置は不自然なことが多い。このような事情を考慮し、タッチされた箇所の配置パターンと典型的な指の配置パターンとの類似度より、タッチされた箇所の配置パターンとオブジェクトの配置パターンとの類似度の方が高い場合、選択操作判定部107はオブジェクトが選択されたと判定する。
以下、選択操作判定部107の第9の変形例について具体的に説明する。図13に示すような、典型的な右手及び左手の1本〜5本の指の配置パターンを予め記憶装置104に記憶しておく。指の配置パターンは画像データではなく配置を示す数値でもよい。以下、図14を参照しながら、選択操作判定部107の第9の変形例における処理について説明する。図14は、選択操作判定部107の第9の変形例における処理を示すフローチャートである。
ステップS1401において、選択操作判定部107は、複数オブジェクト指定部105から、タッチされた箇所の総数Nとタッチされた箇所の配置パターンとを取得する。ステップS1402において、選択操作判定部107は、画像データ上のオブジェクトの総数Mとそのオブジェクトの配置パターンとを取得する。もし、図15に示すように、タッチされている画像データが複数に渡る場合は、複数の画像データ(画像データ10、画像データ1)に含まれるオブジェクトの総数となる。なお、図15の1501、1502の黒丸はタッチされている箇所を示している。また、オブジェクトの配置パターンは上記複数の画像データの配置情報を考慮する必要がある。画像データ10と画像データ1とを例にとると、画像データ10と画像データ1との配置情報(図15の例では、画像データ10が左に、画像データ1が右に配置されている)に応じてオブジェクトの配置パターンが変わる。また、オブジェクトの総数Mを取得する対象範囲は画像データ全体でもよいが、全ての指が含まれる最小の四角形を対象範囲としてもよい。
ステップS1403において、選択操作判定部107は、タッチされた箇所の総数Nとオブジェクトの総数Mとを比較する。オブジェクトの総数Mよりタッチされた箇所の総数Nの方が大きい場合、処理はステップS1404に移行する。一方、オブジェクトの総数Mがタッチされた箇所の総数N以上である場合、処理はステップS1407に移行する。
ステップS1404において、選択操作判定部107は、タッチされた箇所の配置パターンとオブジェクトの配置パターンとの類似度と、タッチされた箇所の配置パターンと典型的な指の配置パターンとの類似度とをそれぞれ計算する。なお、パターンの類似度は、既存の技術を用いることにより容易に算出することができる。
ステップS1405において、選択操作判定部107は、ステップS1404にて算出した2つの類似度を比較する。タッチされた箇所の配置パターンとオブジェクトの配置パターンとの類似度より、タッチされた箇所の配置パターンと典型的な指の配置パターンとの類似度の方が高い場合、処理はステップS1407に移行する。一方、タッチされた箇所の配置パターンと典型的な指配置パターンとの類似度の方より、タッチされた箇所の配置パターンとオブジェクトの配置パターンとの類似度の方が高い場合、処理はステップS1406に移行する。ステップS1407において、選択操作判定部107は、オブジェクトが選択されない状態で画像データの表示切り替えが指示されたと判定する。ステップS1406において、選択操作判定部107は、オブジェクトが選択された状態で画像データの表示切り替えが指示されたと判定する。
なお、上述した第1〜第9の変形例の夫々を適用してもよいし、第1〜第9の変形例のうちの任意の複数の変形例を組み合わせて適用してもよい。
以上のように、本実施形態によれば、ユーザが優先的に見たいオブジェクトをタッチするという直観的な操作で他の画像データより優先的に当該オブジェクトを含む画像データを検索し、表示させることができる。また、オブジェクトが選択されたか否かについてユーザの自然な操作に基づく判定が可能になるため、ユーザの負担を増やすことがない。
次に、本発明の第2の実施形態について説明する。第1の実施形態では、同時に複数の特徴を指定する際に、複数の特徴をもつオブジェクトを同時に選択する方法を示した。これに対し、第2の実施形態では、同時に複数の特徴を指定する場合に、オブジェクトを複数回に分けて選択する方法について説明する。なお、第2の実施形態に係る情報処理システムの構成は図1に示した構成と同様であるため、以下の説明においても、図1の符合を用いるものとする。
第2の実施形態によれば、例えば、図11の1101に示すように、丸という特徴をもつオブジェクトを指定して画像データの表示を切り替えた後に、続いて図12の1201に示すように、三角の特徴をもつオブジェクトを指定すると、丸と三角という複数の特徴をもつ画像データを優先させる動作が可能になる。
次に、図16を参照しながら、画像ブラウジングを行う際の処理について説明する。図16は、画像ブラウジングの際の処理を示すフローチャートである。なお、図16では、図9と共通の処理については図9と同じ符号を付与している。以下では、図9と異なる処理である、ステップS1601、S1602、S1603について説明する。
ステップS1601においては、画像検索部110は、基本的には上記ステップS905と同様の処理を行う。但し、後述のステップS1603にてクリアされるまで過去に指定された特徴を記憶装置104に保持しておき、過去に指定された特徴に対し、新たに指定された特徴を追加する点が異なる。図11に示すように、丸という特徴をもつオブジェクトを指定して画像データの表示を切り替えた後に、続いて三角の特徴をもつオブジェクトを指定すると、記憶装置104に保持している特徴は丸と三角になる。複数選択されたときにAND(論理積)をとるか、OR(論理和)をとるか等は第1の実施形態と同様である。
ステップS1602において、入力装置103は、ユーザがアプリケーションを通じて特徴情報をクリアするという指示を出したか否かを判定する。例えば、表示部106にクリアボタンを配置し、入力装置101はそのボタンが押下されたか否かを判定する。特徴情報をクリアするという指示が出された場合、処理はステップS1603に移行する。一方、特徴情報をクリアするという指示が出されていない場合、処理はステップS902に戻る。ステップS1603において、制御装置103は、特徴情報をクリアする。具体的には、制御装置103は記憶装置104に保持されている特徴情報を削除する。なお、ユーザが一度に選択するオブジェクトは1つでもよいし、複数でもよい。
以上説明したように、本実施形態によれば、ユーザが優先的に見たいオブジェクトを順番にタッチするという直観的な操作で他の画像データより優先的に表示させることができる。また、第1の実施形態と同様に、ユーザが優先的に見たいオブジェクトをタッチするという直観的な操作で他の画像データより優先的に表示させることができる。また、オブジェクトが選択されたかどうかについてユーザの自然な操作に基づく判別が可能になるため、ユーザの負担を増やすことがない。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。