(57)【特許請求の範囲】
【請求項１】
コンテンツの検索を行なう情報処理装置であって、
コンテンツを格納する格納手段と、
前記格納手段に格納されたコンテンツを順次選択し、指定された検索条件を満たすか否かを判定することで、コンテンツの検索を行う検索手段と、
前記検索手段により順次選択され、前記検索条件を満たすと判定されたコンテンツを、検索途中で表示部に順次表示させる表示制御手段と、
前記表示制御手段が前記表示部に順次表示した前記コンテンツを、指定されたソート順に従って一定時間ごとにソートするソート手段と
を備え、
前記表示制御手段は、前記ソート手段による前記ソートが行われてソートされた結果のコンテンツを表示した後、前記一定時間が経過するまでは、前記検索手段により新たに検索されたコンテンツを、前記ソート手段によるソートを実行しない状態で、前記ソートが行われた結果のコンテンツに追加して前記表示部に順次表示させる
ことを特徴とする情報処理装置。
【請求項２】
前記情報処理装置のユーザから、前記表示部に表示されているいずれかのコンテンツの選択を受け付けた場合、
前記ソート手段は、前記ソートにおいて当該選択されたコンテンツの優先度を他のコンテンツよりも優先させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置のユーザから、前記ソート手段によるソートの停止指示を受け付けた場合、
前記ソート手段は、前記停止指示の解除をさらに受け付けるまで前記ソートを停止し、
前記表示制御手段は、前記停止指示を受け付けた後に前記検索手段より新たに検索されたコンテンツを、前記ソート手段によるソートを実行しない状態で、前記停止指示を受け付けた時点でのソートの結果に追加して前記表示部に表示させる
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ソート手段は、前記停止指示に基づき前記ソートを停止していた期間の前後で、最後にソートを行ってから前記一定時間が経過した場合に、前記停止指示の解除後の新たなソートを行なうことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置のユーザから操作を受け付けた場合、該操作を受け付けなくなった期間が所定時間を経過するまで前記ソート手段は前記ソートを停止し、
前記表示制御手段は、前記操作を受け付けた後に前記検索手段が更に行った検索の結果を、前記操作を受け付けた時点でのソートの結果に追加して前記表示部に順次表示させる
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記表示制御手段は、ソートがされた結果と共に、前記ソート手段による前記一定時間ごとのソートが行われるまでの残り時間を前記表示部に更に表示させることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
コンテンツの検索を行なう情報処理装置の制御方法であって、
前記情報処理装置の検索手段が、格納手段に格納されたコンテンツを順次選択し、指定された検索条件を満たすか否かを判定することで、コンテンツの検索を行う検索工程と、
前記情報処理装置の表示制御手段が、前記検索工程で順次選択され、前記検索条件を満たすと判定されたコンテンツを、検索途中で表示部に順次表示させる表示制御工程と、
前記情報処理装置のソート手段が、前記表示制御工程において前記表示部に順次表示した前記コンテンツを、指定されたソート順に従って一定時間ごとにソートするソート工程と
を備え、
前記表示制御工程では、前記ソート工程における前記ソートが行われてソートされた結果のコンテンツを表示した後、前記一定時間が経過するまでは、前記検索工程において新たに検索されたコンテンツを、前記ソート手段によるソートを実行しない状態で、前記ソートが行われた結果のコンテンツに追加して前記表示部に順次表示させる
ことを特徴とする情報処理装置の制御方法。
【請求項８】
コンテンツを格納する格納手段を有するコンピュータを、請求項１乃至６のいずれか１項に記載の検索手段、表示制御手段及びソート手段を有する情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
検索可能なコンテンツ、例えば画像を検索する際に、予め定めているソート順に従って検索結果を表示するものがある。検索結果のコンテンツをソートして表示する際は、条件に一致するコンテンツが１つ見つかる毎に、ソートを行う方法が一般的に考えられる。特許文献１では、画像１枚ごとに顔領域を抽出して特徴量を算出し、既に特徴量の算出が終わっている顔画像と合わせてソートして並べて表示することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１０２５４９
【発明の概要】
【発明が解決しようとする課題】
【０００４】
検索途中で所望のコンテンツが見つかった場合は、すぐにそのコンテンツを選択して次の操作を実行したい場合がある。しかし、検索途中でコンテンツを選択しようとしても、条件に一致するコンテンツが１つ見つかる毎にソートを行うと、選択しようとしたコンテンツが別の位置に移動してしまい、誤ったコンテンツを選択してしまう可能性がある。特に、ネットワーク上のコンテンツの検索や、顔画像の特徴量を算出して検索に利用する場合には、１つ１つの検索に時間がかかるため、検索をしている間に画面が頻繁にソートされる可能性がある。
【課題を解決するための手段】
【０００５】
上記課題を解決するための本発明はコンテンツの検索を行なう情報処理装置であって、
コンテンツを格納する格納手段と、
前記格納手段に格納されたコンテンツを順次選択し、指定された検索条件を満たすか否かを判定することで、コンテンツの検索を行う検索手段と、
前記検索手段により順次選択され、前記検索条件を満たすと判定されたコンテンツを、検索途中で表示部に順次表示させる表示制御手段と、
前記表示制御手段が前記表示部に順次表示した前記コンテンツを、指定されたソート順に従って一定時間ごとにソートするソート手段と
を備え、
前記表示制御手段は、前記ソート手段による前記ソートが行われてソートされた結果のコンテンツを表示した後、前記一定時間が経過するまでは、前記検索手段により新たに検索されたコンテンツを、前記ソート手段によるソートを実行しない状態で、前記ソートが行われた結果のコンテンツに追加して前記表示部に順次表示させることを特徴とする。
【発明の効果】
【０００６】
コンテンツの検索途中で所望のコンテンツが見つかった場合、そのコンテンツを選択することが容易となる。
【図面の簡単な説明】
【０００７】
【図１】発明の実施形態に係る情報処理装置の構成例を示すブロック図。
【図２】発明の実施形態に係るコンテンツの検索処理の一例を示すフローチャート。
【図３】発明の実施形態に係る画像管理アプリケーションのメイン画面の表示例を示す図。
【図４】発明の実施形態に係る画像管理アプリケーションにおいて顔検索を実行する場合の設定画面の一例を示す図。
【図５】発明の実施形態に係る画像管理アプリケーションにおいて顔検索を実行した場合の、ソート前後の検索結果を説明するための図。
【図６】発明の実施形態に係る画像管理アプリケーションでの顔検索実行中に検索結果のコンテンツが選択された場合の表示例を説明するための図。
【図７】発明の実施形態に係るコンテンツの検索処理において検索結果のソートを一時停止する処理の一例を示すフローチャート。
【図８】発明の実施形態に係るコンテンツの検索において、ユーザー操作がなくなってから所定の時間が経過した際にソートを行う処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、発明の実施形態について説明する。説明する発明の実施形態として画像管理アプリケーションによる顔検索を行う場合を例にして説明する。しかしながら、本発明の適用範囲は、画像に関する顔検索にのみ限定されるものではない。画像に限定されることなく、他のコンテンツ、例えば、文書データ、動画像データ、音声データ等に適用することができる。また、データ形式も特に問わない。また、類似度判定についても、顔画像を検索キーとする判定手法に限定されるものではなく、文字、画像、音声、その他を検索キーとして利用可能なものを利用して行なうことができる。
【０００９】
本願発明は、検索キーとなる情報との類似度或いは関連度が一定以上であることをコンテンツの検索条件とする。よって、当該検索条件について判定が可能なコンテンツであれば、どのようなものに対しても本願発明の適用が可能である。ただし、説明の簡単のために以下では顔画像検索をベースとする画像管理アプリケーションの例を説明することとした。
【００１０】
図１は、実施例のシステム構成を示す図である。情報処理装置１００は、発明の実施形態に対応する画像管理アプリケーションがインストールされている。情報処理装置は、例えばパーソナルコンピュータ（ＰＣ）として実現される。しかし、ＰＣに限らず、それ以外の情報処理装置として、例えば、携帯電話、デジタルカメラ、デジタルビデオカメラ、スマートフォン、メディアプレーヤ、ゲーム端末等、検索キーに基づいてコンテンツを検索可能な装置であればどのような装置であってもよい。
【００１１】
ＣＰＵ１０１は、情報処理装置１００の動作を制御する処理部である。なお、ＣＰＵ１０１は、発明の実施形態において、コンテンツを検索するための検索処理部、あるいは、検索結果をソートするためのソート処理部として機能することができる。表示制御部１０２は、表示部１０５に、本実施形態に対応するコンテンツ検索処理の結果表示を行わせるためのディスプレイ・コントローラである。一次記憶装置１０３は、例えばＲＡＭなどにより構成され、ＣＰＵ１０１が実行するためのプログラムや処理に使用するデータを記憶して、ＣＰＵ１０１の作業領域として機能する。二次記憶装置１０４は、ハードディスクなどにより構成され、ＣＰＵ１０１を動かすプログラムを格納する。当該プログラムには、画像管理アプリケーションが含まれている。また、検索対象のコンテンツは、二次記憶装置１０４内に格納される。二次記憶装置１０４のプログラムは、一次記憶装置１０３に読み出され、ＣＰＵ１０１により実行される。表示部１０５は、液晶ディスプレイ等の表示装置である。操作部１０６は、キーボードやマウスなどで構成され、ユーザからの入力操作を受け付ける。
【００１２】
なお、情報処理装置１００は、スタンドアロンの装置として機能することもできるが、ネットワークを介してクライアント装置と接続するサーバとして機能してもよい。サーバとして機能する場合、サーバはクライアント装置から検索条件の指定を受け付け、サーバが管理するコンテンツデータベース内を検索する。当該コンテンツデータベースは、二次記憶装置１０４に相当する。検索結果は、クライアント装置にネットワークを介して送信され、クライアント装置側でユーザに表示される。この時、クライアント装置側のディスプレイは表示部１０５に相当し、表示制御部１０２と表示部１０５とがネットワーク（インターネット等）を介して接続されることとなる。即ち、表示制御部１０２はネットワーク通信を制御するための通信制御部としても機能することとなる。また、ユーザからの操作は、ネットワークを介して受け付けるので、操作部１０６に相当する機能もクライアント装置側に置かれることとなる。以下では、情報処理装置１００をスタンドアロンの装置として動作させる場合を実施形態として説明するが、上記の想定に基づけばサーバとしても同様に動作可能である。
【００１３】
以下、発明の実施形態に対応する画像管理アプリケーションを用いて情報処理装置１００が行う処理を説明する。まず、図３は、画像管理アプリケーションを情報処理装置１００が実行した場合に表示されるメイン画面である。図３の画像管理アプリケーションの機能の一つとして、顔検索を実行することができる。顔検索の詳細フローについては後述するが、基準となる顔画像を選択すると、選択した顔画像と同じ人物が写っていると判定された画像を検索するものである。
【００１４】
例えば、ユーザが「花子ちゃん」という特定の人物の顔画像を選択して顔検索を実行すると、画像管理アプリケーションによって花子ちゃんが写っていると判定された画像が検索結果として表示される。画像管理アプリケーションは、顔領域抽出機能と類似度算出機能とを有する。顔領域抽出機能では、画像から顔の局所的特徴要素を抽出して配置情報を構成して顔領域を抽出する。当該配置情報は特徴量としても用いられ、類似度算出機能において基準画像と対象画像それぞれの特徴量を比較して類似度を算出する。もし、算出された類似度が所定の閾値以上であれば、類似画像として検索結果に表示する。なお、顔検索に関する技術は公知の技術を用いればよく、また、本願発明の本質的技術的事項ではないので、より詳細な説明は省略する。
【００１５】
なお、顔検索以外の類似判定については、検索キーに相当する情報を、検索対象のコンテンツから抽出するための技術を利用して、検索条件を満たすか否かの判定を行うことができる。
【００１６】
図３において、フォルダ選択エリア３０１には、画像管理アプリケーションが管理しているフォルダが表示される。サムネイル表示エリア３０３は、フォルダ選択エリア３０１でユーザーが選択したフォルダ内の画像が表示される。図３の場合は、フォルダ３０２が選択されており、フォルダ３０２内の画像が表示されている。メニュー３０４は、ユーザが選択可能なメニュー項目を表示しており、図３の場合「顔検索」が選択候補として表示されている。この「顔検索」メニューが選択されると、顔検索を実行することができる。
【００１７】
なお、ユーザが選択可能な項目としては「顔検索」の他に、「被写体検索」、「色検索」、「キーワード検索」等も考えられる。「被写体検索」とは、画像に写っている被写体の種類を判別し、判別された被写体と類似の被写体が含まれる画像を検索する処理をいう。「色検索」とは、画像で最も多く使われている色（代表色）、或いは、画素の色値を平均して得られる平均色等を算出して、代表色や平均色が同一又は類似の画像を検索する処理をいう。「キーワード検索」とは、文字情報として検索条件を受け付け、当該文字情報に該当する画像を、画像そのものから抽出可能な情報、或いは、画像に付加されている属性情報に基づいて判定する処理である。キーワードとしては、色や被写体名、撮影場所など、どのような情報を用いても良い。これらの項目のいずれかが選択された場合であっても、以下に説明する処理と同様の処理を行うことが可能である。
【００１８】
図４は、メニュー３０４の顔検索を選択したときの画像管理アプリケーションの表示例を示す。メニュー３０４を選択すると、設定パネル４０１が表示される。設定パネル４０１には、顔検索の設定を行うためのコントロールが配置されている。選択エリア４０２は基準となる顔画像が選択可能に表示される。本実施形態では、選択エリア４０２には、画像管理アプリケーションが管理している顔画像のリストが表示される。画像管理アプリケーションへの顔画像の登録方法については、一般的な画像登録方法を利用すればよいので、ここでの説明は省略する。
【００１９】
ユーザはこの顔画像リストから検索のキーとしたい顔画像を選択することで、選択した顔画像と同じ人物が写っていると判定された画像を検索できる。検索結果の画像は、検索結果表示エリア４０６に表示される。ソートを行う前は、検索結果として見つかった順に画像を表示していく。リストボックス４０４は、検索結果を表示する際のソート順を選択するためのコントロールである。リストボックス４０４により選択したソート順に従い、検索結果の画像がソートして表示される。図４の場合、類似度が高い順にソート順が設定されているので、画像のソート時は、顔検索を行った際の類似度が高い順に画像が表示される。つまり、ユーザが選択した基準の顔画像４０３と類似度が高い順に、画像がソートされ、表示が行われる。リストボックス４０４で選択可能な項目として、画像の撮影日時が新しい順、ファイル名の昇順、降順などが考えられる。検索ボタン４０５は、検索開始の指示を受け付けるためのボタンであって、ユーザが基準の顔画像とソート順を選択した後に検索を開始する際に操作される。
【００２０】
次に、図２を参照して、発明の実施形態に対応する顔検索処理について説明する。図２は、顔検索処理の一例に対応するフローチャートである。当該フローチャートに対応する処理は、画像管理アプリケーションをＣＰＵ１０１が実行することにより実現される。
【００２１】
ユーザによって検索ボタン４０５が操作されると、図２の検索フローに従って顔画像の検索を行う。ここでは、ユーザが基準画像４０３と、「類似度が高い順」をソート順としてリストボックス４０４で選択している場合を例として説明する。検索ボタン４０５が押下されると、Ｓ２０１でＣＰＵ１０２は、画像管理アプリケーションが内部的に持つ変数ｎを１に設定する。ｎは検索対象の全画像数Ｎに対するインデックスであり、１〜Ｎの値をとる。すなわち検索対象の画像総数がＮ枚であり、そのｎ番目の画像を現在検索していることを表す。本実施形態での検索対象の画像は、画像管理アプリケーションでユーザが選択しているフォルダ内の画像である。すなわち、図３で選択しているフォルダ３０２の中にある全画像が検索対象となり、その全画像数がＮとなる。ここでは、図３にある画像３０７をｎ＝１の画像として説明する。
【００２２】
Ｓ２０２でＣＰＵ１０１は、現在時刻を取得して変数ｔ１に代入する。ここで取得した現在時刻は、画像のソートを行うタイミングを判定するために後述するステップで使用される。また、ここで取得する現在時刻は、画像管理アプリケーションを起動してからの経過時間を取得したものとし、例えば１２３４．５６７秒のような値をとるものとする。
【００２３】
次にＳ２０３でＣＰＵ１０１は、現在検索中の画像に顔が写っているかを判定する。画像に顔が写っていなければ顔検索は行えないので、顔が写っていない場合はＳ２０７に遷移する。例えば、画像３０５、３０６のように、顔が写っていない風景の写真などは、Ｓ２０７に遷移する。顔が写っているかの判定は、画像管理アプリケーションが持つ上述の顔領域抽出機能によって行うものとする。画像３０７には顔が写っているので、Ｓ２０４に遷移する。
【００２４】
Ｓ２０４でＣＰＵ１０１は、基準の顔画像と現在検索中の顔画像との類似度を算出する。すなわち、ユーザが選択した４０３の基準画像と、１枚目の画像である３０７の類似度を算出する。２枚の画像の類似度の算出は、画像管理アプリケーションが持つ上述の類似度算出機能によって行うものとする。本実施形態では、類似度は０〜１００の値を取り、値が大きいほど基準画像に近い顔画像であるものとする。
【００２５】
次にＳ２０５でＣＰＵ１０１は、Ｓ２０４で算出した類似度が所定の閾値（Ｔｈ１）以上であるかを判定する。例えば、閾値Ｔｈ１を７０に設定する場合は、類似度が７０以上の画像のみを検索結果として表示することができる。つまり、閾値が高い場合は検索結果の数は少なくなるが、より基準画像に近い画像が検索結果として表示される。逆に、閾値が低い場合は検索結果の数は多くなるが、基準画像とそれほど似ていない画像も検索結果として表示されることになる。ここでの閾値は画像管理アプリケーションによって予め定められた固定の値でもよいし、ユーザが任意の値を設定できてもよい。類似度が閾値Ｔｈ１以上の場合は、Ｓ２０６に遷移する。
【００２６】
Ｓ２０６でＣＰＵ１０１は、現在検索している画像を検索結果として表示する。検索結果の画像は図４の検索結果表示エリア４０６に表示される。Ｓ２０４で算出した類似度が閾値Ｔｈ１より小さい場合、Ｓ２０５の後にＳ２０７に遷移するので、検索中の画像を検索結果として表示しない。ここで、基準の顔画像４０３と現在検索している画像３０７の類似度が９１であり、Ｓ２０５での閾値が７０の場合は、画像３０７を検索結果として表示する。次にＳ２０７でＣＰＵ１０１は、変数ｎに１の値を足す。前述したようにｎは検索中の画像のインデックスを表しており、１を足すことで次の画像を検索対象にする。本実施形態では、検索対象の全画像数Ｎのうちのいずれかの画像が順次選択されて処理されてる。
【００２７】
次にＳ２０８でＣＰＵ１０１は、変数ｎの値が検索対象の全画像数Ｎより大きいかを判定する。ｎ値がＮより大きい場合は、全ての画像の検索が終わったことを示すのでＳ２１２へ遷移する。ｎの値がＮ以下である場合は、未検索の画像が残っていることを示すので、Ｓ２０９へ遷移する。Ｓ２０９でＣＰＵ１０１は、現在時刻を取得して変数ｔ２に代入する。ここで取得する現在時刻は前述と同じように、画像管理アプリケーションを起動してからの経過時間とし、例えば１２３５．６７８秒のような値をとるものとする。
【００２８】
次にＳ２１０でＣＰＵ１０１は、取得したｔ２とｔ１の差を算出し、その値がソート間隔に相当する一定時間：Ｔ以上であるかを判定する。例えばソート間隔が７秒である場合は、前述のｔ２とｔ１の差を算出しても１．１１１秒となり、Ｔの値の方が大きくなる。その場合は、Ｓ２０３に遷移し、次の画像の検索を行う。このように、所定の間隔Ｔが経過するまでは、検索結果を順次表示していき、画像のソートは行わない。つまり、ソート間隔が７秒の場合は、７秒間はソートが行われないことになる。
【００２９】
Ｓ２１０からＳ２０３に遷移した後は、前述のフローと同じようにして画像の検索を行う。例えば、２枚目の画像の検索が終わって、Ｓ２０９に遷移し、Ｓ２０９で取得した現在時刻が１２３６．７８９の場合は、ｔ２とｔ１の差分は２．２２２秒になる。しかし、ソート間隔の７秒よりは小さいので、この場合も再度Ｓ２０３に遷移する。このように画像の検索を繰り返していく中で、Ｓ２１０でｔ２とｔ１の差がソート間隔の７秒以上になった場合は、Ｓ２１１に遷移する。Ｓ２１１でＣＰＵ１０１は、検索結果のソートを行う。
【００３０】
検索結果のソートについて、図５を用いて説明する。図５（ａ）はソート直前の画像管理アプリケーションを示しており、図５（ｂ）はソート直後の画像管理アプリケーションを示している。図５（ａ）では、検索結果表示エリア５０１に５０２〜５０６の５枚の画像が表示されている。なお、前述したように５０２〜５０６の画像は、検索した順に表示されている。ここで５０２〜５０６の各画像と基準画像の類似度をテーブル化したものが、図５（ｃ）のテーブル５２０である。テーブル５２０をみると、類似度が一番高い画像は画像５０４である。そこで、ソート時は画像５０４を優先度が最も高いソート位置に表示する。すなわち、図５（ｂ）の５０７の位置（画面左上）に類似度が一番高い画像を表示する。次に、図５（ｃ）の中で類似度が二番目に高い画像は５０２である。そこで、図５（ｂ）の５０８の位置に表示する。このようにして図５（ｂ）の画像５０７から画像５１１までの各位置にソート後の画像が表示される。更に検索された画像は、画像５１２の位置に表示されることとなる。
【００３１】
なお、図５（ｂ）で、残り時間表示エリア５１３には、画面の表示内容が更新されるまでの残り時間の情報と、検索の一時停止を指示するための一時停止ボタン５１４とが表示される。本実施形態では残り時間は、当該残り時間を示すメーターと、残り時間数そのものとして表示される。
【００３２】
以上のように、画像のソート時は、現在検索結果として表示されている画像をソート順に従って表示する。Ｓ２１１での画像のソートが終了すると、Ｓ２０２に遷移する。Ｓ２０２では、前述したように現在時刻を取得して変数ｔ１に代入する。このように、画像のソートを行った際はＳ２０２に遷移することで、基準時刻をリセットする。以降は前述したステップを繰り返していく。このとき、新たに検索された画像は、ソート後の検索結果に追加されて表示されていく。また、Ｓ２０２で基準時刻をリセットした後に、Ｓ２１０でｔ２とｔ１の差がソート間隔Ｔ以上になった場合は、Ｓ２１１で再度ソートを行う。そして、全ての画像の検索が終わるとＳ２１２へ遷移する。Ｓ２１２でＣＰＵ１０１は、検索結果の画像をソートする。ここでソートを行うのは、Ｓ２１１でソートを行った後に検索結果として表示された画像がある状態で検索が終了すると、一部の画像が未ソートになってしまうためである。そこで、全画像の検索終了時に、Ｓ２１２で画像のソートを行う。以上が、画像の検索とソートを行う一連の流れである。
【００３３】
以上の処理によれば、検索結果の画像は一定時間を経過するまではソートされずに表示状態が維持されるので、ユーザは、コンテンツの検索途中で所望のコンテンツが見つかった場合、そのコンテンツを選択することが容易となる。
【００３４】
次に、検索途中でユーザが検索結果表示エリアに表示されている画像を選択した場合の処理について説明する。図６の（ａ）は、検索結果表示エリア６０１に表示されている画像のうち、ユーザが画像６０２を選択した状態を表している。検索途中でも検索結果の画像を選択できるようにすることで、ユーザが所望する画像がすぐに見つかった場合、その画像を選択して次のユーザ操作を行うことが可能となる。検索途中でのコンテンツの選択は、マウス操作で対象画像を選択することで行うことができる。
【００３５】
図６の（ａ）の例では、残り時間表示エリア５１３に表示されるように次のソートを行うまで３秒の時間があるが、ここでは新たな検索結果が見つからないまま３秒が経過したとする。この場合、検索結果表示エリア６０１に表示されている５枚の画像でソートを行うのだが、前述の図２のフローに従えば類似度に従って画像がソートされる。しかし、検索途中でユーザが画像を選択したということは、ユーザが所望している画像である可能性がある。そこで、検索途中にユーザが選択した画像は、優先度が最も高いソート位置に表示する。ソートを行った後の画像管理アプリケーションの状態を図６の（ｂ）に示す。ここでは、表示の優先度が高い順に画像が検索結果表示エリア６０３に表示される。図６の（ａ）で選択していた画像６０２は、優先度が最も高いソート位置である６０４に表示している。選択されていない画像については、画像６０４の後にソート順に従ってソートして表示する。図６の（ｂ）の場合は、画像６０４を除く画像の中で画像６０５の類似度が最も高いことを示しており、以降は６０６〜６０８の順に類似度が高いものとなっている。なお、図６の（ｂ）の状態でユーザが別の画像を選択した際は、次のソート時にユーザが新たに選択した画像を優先度が最も高いソート位置に表示する。そして、前に選択していた画像は、他の画像と同じように類似度に従ってソートして表示する。
【００３６】
次に、一定の時間間隔で行う画像のソートを一時停止する処理について説明する。例えば、画像の検索中に検索結果の画像を注目して確認したい場合は、画像の検索は継続したいが、ソートは一時的に停止したいことが考えられる。そこで、図５のボタン５１４のように、画像のソートを一時停止するボタンを設ける。このボタンを押下することで、一定時間ごと行われる画像のソートを一時的に停止することができる。なお、前述したようにソートの一時停止中であっても画像の検索は継続する。また、画像のソートを一時停止した後は、ソートを再開することもできる。ソートの一時停止中は、ボタン５１４が再開ボタンとなり、ソートの一時停止中に再開ボタン５１４を押下することで、画像のソートを再開することができる。ソートの一時停止を含めた画像の検索フローについて、図７を用いて説明する。なお、図７の検索フローは、図２の検索フローを基にしているので、図２のフローとの差異を中心にして説明を行う。図７のフローチャートに対応する処理は、画像管理アプリケーションをＣＰＵ１０１が実行することにより実現される。
【００３７】
ステップ７０１でＣＰＵ１０１は、画像管理アプリケーションが内部的に持つ変数ｎを１に、変数ｔ３を０に設定する。ｎは前述したように、検索対象の全画像数Ｎに対するインデックスである。ｔ３はソートを行うかを判定するために利用する変数であり、後述するステップでｔ３の値がソート間隔Ｔより大きい場合にソートを行う。Ｓ７０２からＳ７０８については図２の検索フローと同一なので、説明を省略する。Ｓ７０９でＣＰＵ１０１は、画像のソートが一時停止中であるかを判定する。図５（ｂ）にある一時停止ボタン５１４が押下されていない場合は、Ｓ７１０に遷移する。
【００３８】
Ｓ７１０でＣＰＵ１０１は、現在時刻を取得して変数ｔ２に代入する。次にＳ７１１でＣＰＵ１０１は、ｔ２からｔ１を引いた値と、ｔ３の値を足して、ｔ３に代入する。例えば、変数ｔ１が１２３４．５６７秒、変数ｔ２が１２３５．６７８秒であった場合を考える。なお、変数ｔ３はＳ７０１で０が代入されている。ここで前述の計算を行うと、ｔ３の値は１．１１１秒となる。図２の検索フローでは単純にｔ２とｔ１の差を計算してソートを行うかを判定していたが、図７の場合は、ｔ２とｔ１の差を計算して、ｔ３にその値を足している。そしてＳ７１２でＣＰＵ１０１は、ｔ３の値がソート間隔のＴ以上であるかを判定する。例えば、ソート間隔Ｔが７秒で、ｔ３が１．１１１秒である場合は、ｔ３の値がＴより小さいので、Ｓ７０２に遷移して、次の画像の検索を行う。Ｓ７０２に遷移した後は、１枚目の画像の検索と同じようにＳ７０２〜Ｓ７０８の処理を行う。
【００３９】
そして、Ｓ７０９で画像のソートが一時停止中であるかを判定する。一時停止中でない場合は前述のフローと同じなので、ここでは１枚目の画像の検索が終わった後にユーザが一時停止ボタンを押下して、ソートが一時停止中になっている場合を考える。その場合は、Ｓ７１０に遷移せず、すぐにＳ７０２へ遷移する。つまり、一時停止中である場合はＳ７１０〜Ｓ７１２が省略されるので、変数ｔ３の値が増加することがなくソートも行われない。
【００４０】
このようにＳ７０９で、ソートが一時停止中であるかを判定することで、一時停止ボタンが押下されている間は、画像のソートを一時的に停止することができる。また、一時停止中にユーザが再開ボタンを押下した場合は、Ｓ７１０〜Ｓ７１２の処理を行うので、変数ｔ３の値も増加していく。このとき、変数ｔ３にはソートを一時停止する前に加算された値が代入されている。すなわち前述の例では、１．１１１秒が変数ｔ３に代入されている。つまり、ソートを一時停止した時点での変数ｔ３の値が保持されることになる。そして、検索を続けていく中でＳ７１２で変数ｔ３の値がソート間隔Ｔ以上になった場合は、Ｓ７１３に遷移して画像のソートを行う。画像のソートを行った後は、変数ｔ３に０を代入して値をリセットする。これにより一時停止指示に基づきソートを停止していた期間の前後で最後にソートを行ってから一定時間が経過した場合に、停止指示の解除後の新たなソートを行なうことができる。なお、本処理の変形例として、一時停止が解除された後に直ちにソートを行っても良い。
【００４１】
このようにして画像の検索を繰り返していき、全ての画像の検索が終わったらＳ７１５へ遷移する。Ｓ７１５でＣＰＵ１０１は、Ｓ７０９と同じように画像のソートが一時停止中であるかを判定する。全画像の検索が終了した時点で一時停止中である場合は、ソートを行わずに検索を終了する。図２の検索フローの場合は、検索終了時にも画像のソートを行っていたが、図７のフローでは一時停止ボタンが押下されている場合は、検索終了時にもソートを行わない。また、検索終了時に一時停止ボタンが押下されていない場合は、図２のフローと同じようにＳ７１６に遷移して画像のソートを行う。
【００４２】
以上の処理によれば、検索結果の画像の表示状態を一時停止指示により維持することが可能となるので、ユーザは、コンテンツの検索途中で所望のコンテンツが見つかった場合、そのコンテンツを選択することが容易となる。
【００４３】
次に、コンテンツの検索中に、次のソートを行うまでの残り時間を表示する処理について図６の（ａ）を用いて説明する。例えば、検索途中にユーザが検索結果のコンテンツを選択しようとした場合、ソート直前にコンテンツを選択してしまうと、ユーザがマウス操作などを行っている間にソートが行われてしまい、選択しようとした画像が別の位置に移動してしまうことが考えられる。そこで、コンテンツの検索中は次のソートを行うまでの残り時間を表示しておくことで、ユーザがコンテンツを選択するタイミングの目安にすることができる。ここでは、残り時間の表示方法について２つの例を説明する。第一に、図６の（ａ）のエリア５１３にあるように、残り時間をそのまま文字列として表示する方法である。図６の（ａ）の例では、残り３秒と表示されているので、３秒後にソートが行われることが明確に分かるようになっている。また、ここでは１秒単位で次のソートを行うまでの残り時間を表示している。残り時間は、例えば０．００１秒単位で表示することもできるが、その場合０．００１秒単位で残り時間の文字列の更新を行うことになり、ユーザにとっては表示が煩わしい可能性もある。そこで、ここでは１秒単位で残り時間を表示するようにしている。
【００４４】
第二の残り時間の表示方法として、同じエリア５１３にあるようにアイコンを表示して、残り時間に応じた制御を行う方法がある。図６の（ａ）の例では、７個のランプのうち左４つのランプが点灯し、右３つのランプが消灯している。これは、前回ソートを行ってから既に４秒の時間が経過していることを点灯しているランプの数で示しており、次のソートを行うまので時間が３秒であることを消灯しているランプの数で示している。
【００４５】
つまり、検索開始時はランプが全て消灯しており、１秒経過するごとにランプが左から順に１つずつ点灯していくことになる。そして、全てのランプが点灯すると、コンテンツのソートを行う。ソート後はランプが全て消灯し、再度同じフローでランプの点灯を繰り返していく。このように、点灯または消灯しているランプの数に応じて次のソートを行うまでの残り時間を表すことで、ユーザにとって直感的に次のソートを行うまでの残り時間が分かるようになっている。
【００４６】
なお、ここではソート間隔が７秒でランプの数も７個であるため、１秒毎にランプを点灯するようにしているが、ランプを点灯する間隔は、ソート間隔とランプの数によって決めることができる。例えば、ソート間隔が２０秒でランプの数が５個の場合は、４秒毎にランプを点灯していけばよい。
【００４７】
次に、検索中に画像をソートする際に、ユーザによる操作がなくなってから所定時間が経過する毎に画像をソートする処理について、図８を用いて説明する。例えば、検索中にユーザが注目して確認したい画像が見つかった場合は、マウスやキーボード操作をして表示されている画像を選択しようとすることが考えられる。このようなユーザ操作が行われる際に画像をソートしてしまうと、ユーザが選択しようとした画像が別の位置に移動してしまい、誤った画像を選択してしまうことが考えられる。そこで、ユーザによる操作がなくなってから所定時間が経過した場合に画像をソートすることで、前述のような問題を防ぐことができる。
【００４８】
以下、図８の検索フローについて具体的に説明する。なお、図８の検索フローは、図２の画像検索フローを基にしており、図２のフローと異なるのはＳ８１０の処理だけであるので、Ｓ８１０の処理を中心にして説明を行う。Ｓ８０１〜Ｓ８０９の処理は図２の検索フローと同一なので、説明を省略する。次に、Ｓ８１０でＣＰＵ１０１は、ｔ１からｔ２の間にユーザ操作が行われたかを判定する。なお、ここでのユーザ操作とは、検索を行っている情報処理装置１００の操作部１０６に対する操作をいう。当該操作には、マウス操作やキーボード操作が含まれる。この判定を行うためには、ｔ１からｔ２の間にユーザ操作が行われた場合に、画像管理アプリケーションが内部的なフラグを立てておき、Ｓ８１０ではそのフラグを見てユーザ操作が行われたかを判定するなどの方法が考えられる。
【００４９】
ここで、ｔ１からｔ２の間にユーザ操作が行われていない場合は、Ｓ８１１に遷移する。そしてＳ８１１以降は、前述の図２の検索フローと同じように、変数ｔ２とｔ１の差を算出し、その値がソート間隔のＴ以上であるかを判定する。なお、時間間隔Ｔは、図２のＳ２１０における時間間隔Ｔと同一の値であってもよいし、異なる値であっても良い。そして、変数ｔ２とｔ１の差がソート間隔Ｔ以上であればＳ８１２に遷移して画像のソートを行い、変数ｔ２とｔ１の差がソート間隔Ｔより小さい場合は、Ｓ８０３に遷移して次の画像の検索を行う。
【００５０】
ここで、１枚目の画像の検索が終わるまではユーザ操作はなかったが、２枚目の画像の検索を行っている間にユーザ操作が行われたとする。その場合は、２枚目の検索が終わった後に、Ｓ８１０からＳ８０２へ遷移する。Ｓ８０２へ遷移すると変数ｔ１に現在時刻が代入されるので、ソートを行うタイミングを判定する基準時刻がリセットされる。そして、Ｓ８０３へ遷移して次の画像の検索を行う。以降は前述のフローを繰り返して検索を行っていき、ｔ１からｔ２の間にユーザ操作が行われなかった場合は画像のソートを行う。そして、全画像の検索が終了した後に、Ｓ８１３で画像のソートを行う。
【００５１】
以上の処理によれば、ユーザが操作部１０６を操作すれば、検索結果の画像の表示状態を維持することが可能となるので、ユーザは、コンテンツの検索途中で所望のコンテンツが見つかった場合、そのコンテンツを選択することが容易となる。  なお、図２、図７及び図８に記載したフローチャートに対応する処理は、それぞれ独立に実施されてもよいし、或いは、それらの処理を任意の組み合わせにおいて実施しても良い。  
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【００５２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005693369.tif 000002
【図２】
0005693369.tif 000003
【図７】
0005693369.tif 000004
【図８】
0005693369.tif 000005
【図３】
0005693369.tif 000006
【図４】
0005693369.tif 000007
【図５】
0005693369.tif 000008
【図６】
0005693369.tif 000009