以下に添付図面を参照して、ネットワークシステムおよび情報処理方法の実施形態を詳細に説明する。
(実施形態に適用可能な画像検索システム)
実施形態の説明に先んじて、理解を容易とするために、実施形態に適用可能な画像検索システムについて説明する。この画像検索システムは、撮像装置で撮像された撮像画像からオブジェクトを抽出し、抽出したオブジェクトと、データベースに予め格納されたオブジェクトとを比較して、データベースに格納されたオブジェクトのうち、撮像画像から抽出したオブジェクトに対して最も類似度の高いオブジェクトを特定する。そして、特定されたオブジェクトに予め関連付けられた商用サイトのリンク情報などを、ユーザに提示する。
図1は、実施形態に適用可能な画像検索システムの一例の構成を示す。図1に示す画像検索システム200において、ネットワーク10に対して、画像検索サーバ11および端末装置20が接続される。ネットワーク10は、例えばインターネットであって、通信プロトコルとしてTCP/IP(Transmission Control Protocol/Internet Protocol)が適用される。ネットワーク10は、互いにネットワークで接続される複数のコンピュータを含み、外部からは、その内部が隠蔽されたブラックボックスとして入出力のみが示されるネットワーク・グループであるネットワーククラウドであってもよい。
ネットワーク10に対して、さらに、複数の商用サイト30Aおよび30Bが接続される。これら商用サイト30Aおよび30Bは、ネットワーク10を介してなされた注文に応じて商品の発送などを行うことができる。
端末装置20は、無線または有線によってネットワーク10との間で通信を行うことができる。端末装置20は、ネットワーク10を介して受信した命令に従った動作を行うことができると共に、表示装置と入力装置とを含むUI(ユーザインタフェース)に対してネットワーク10を介して受信した画像などの表示や、UIに対してなされたユーザ操作に従いネットワーク10に向けてデータを送信することができる。
また、端末装置20は、撮像機能を有し、UIに対する撮像指示操作に応じて被写体の撮像を行うことができるようにされている。端末装置20は、撮像により得られた撮像画像をネットワーク10に向けて送信することができる。
画像検索サーバ11は、データベース(DB)12が接続され、ネットワーク10を介して受信した要求に従い、DB12に対して、実施形態に係る検索処理を行うことができる。実施形態においては、DB12には複数の画像データ50Aおよび50Bを検索するための各索引データが、それぞれ連携情報と関連付けられて格納される。索引データは、画像データのバイナリを解析して得られたデータであって、画像データを、検索のための構造に変換したデータである。
なお、DB12に対して、画像データを直接的に格納することも可能である。画像データのファイル名およびパスをDB12に格納してもよい。
画像検索サーバ11は、ネットワーク10を介して画像データを受信し、受信した当該画像データに基づきDB12を検索して、当該画像データに対応する連携情報を検索結果として取得する。画像検索サーバ11は、この検索結果として取得された連携情報を、画像データの送信元に返す。
図2は、DB12に格納される索引データの元となる画像データ50Aおよび50Bの例を示す。ここで、画像データに含まれるオブジェクトについて定義する。オブジェクトとは、画像データによる画像内において主となる対象物の画像を指し、当該主となる対象物の背景画像や、画像内における当該主となる対象物の付随情報などとは区別される画像である。
一例として、画像データ50Aおよび50Bは、それぞれカタログ雑誌の中身である内容ページと、当該カタログ雑誌の表紙である表紙ページであるものとする。図2(a)は、内容ページの画像130Aによる画像データ50Aの例を示し、図2(b)は、表紙ページの画像130Bによる画像データ50Bの例を示す。
図2(a)は、画像130Aの中央部に1のオブジェクト131が配置された例である。画像130Aにおいて、オブジェクト131に対して、オブジェクト131を含む対象領域134が設定される。この図2(a)は、対象領域134のサイズに対するオブジェクト131のサイズの比率が小さい場合の例である。カタログ雑誌の場合、内容ページは、商品の紹介を行うのが目的であるため、商品を示す画像であるオブジェクト131は、内容ページに対して大きく表示される。
図2(b)は、画像130Bに対して複数のオブジェクト132および133が配置された例である。ここでは、オブジェクト132は、図2(a)に示すオブジェクト131を縮小した画像であり、オブジェクト133は、他の画像である。画像130Bに対してさらに多くのオブジェクトを配置してもよい。この例では、表示ページは、カタログ雑誌の内容を要約して示すように、内容ページに含まれる各オブジェクト132および133が縮小されサムネイルとして表示されている。画像130Bにおいて、対象領域135は、オブジェクト132および133を含むと共に、表示ページ(画像130B)の全体に及ぶように設定されている。
なお、対象領域134および135は、オブジェクト131、ならびに、オブジェクト132および133をそれぞれ認識するための指標として用いられる。対象領域は、オブジェクトの全体を含み、且つ、オブジェクトを含む画像の全体より小さい任意のサイズにそれぞれ設定可能である。
連携情報について説明する。連携情報は、例えば、画像に含まれるオブジェクトに連携する機能を示す情報であって、より具体的には、当該オブジェクトの属性情報にアクセスするアクセス方法を含む情報である。したがって、連携情報は、実際には、画像に含まれるオブジェクトに対して関連付けられてDB12に格納されると考えることができる。
一例として、内容ページの画像130Aに含まれるオブジェクト131において、連携情報は、オブジェクト131が示す商品を取り扱う例えば商用サイト30AのURL(Uniform Resource Locator)や、当該商品の購入設定を行う購入ページのURLである。これらに限らず、連携情報として、当該商品を取り扱う店舗の電話番号やメールアドレスを用いてもよい。さらに、当該商品の情報などを含むデータファイルをダウンロードするための情報を、連携情報として用いてもよい。なお、DB12において、1のオブジェクトに対して複数の連携情報を関連付けることができる。
別の例として、表紙ページの画像130Bに含まれる各オブジェクト132および133に対して、連携情報として、例えば、当該表紙ページを含むカタログ雑誌そのものを紹介するネットワーク10上のサイトなどのURLを用いることができる。
図3は、画像検索サーバ11の機能を示す一例の機能ブロック図である。画像検索サーバ11は、受信部100と、抽出部101と、算出部102と、検索部103と、提示部104と、制御部110とを有する。また、図3では、DB12が画像検索サーバ11に含まれるように示している。制御部110は、この画像検索サーバ11の全体的な動作を制御する。画像検索サーバ11は、1以上のコンピュータを含んで構成される。
受信部100は、ネットワーク10を介して送信されたデータを受信する。例えば、端末装置20から送信された撮像画像(撮像画像40Aとする)が受信部100に受信される。
抽出部101は、受信部100に受信された撮像画像40Aに対して画像解析を行い、撮像画像40Aから特徴点を検出して、当該撮像画像40Aに含まれるオブジェクトを抽出する。例えば、抽出部101は、撮像画像40Aに対して2値化処理を施して、2値化された撮像画像40Aに対してエッジ検出や正規化処理を行い、撮像画像40Aの特徴点を検出する。オブジェクトは、この検出された特徴点により表される。
算出部102は、抽出部101に抽出された撮像画像40Aの特徴点と、DB12に格納される各索引によって検索される各オブジェクトを表す特徴点とを比較する。そして、比較結果に基づき、撮像画像40Aに含まれるオブジェクトと、DB12に格納される各索引によって検索される各オブジェクトとの類似度を算出する。類似度は、例えば、画像から抽出した各特徴点間の関係を、画像毎に比較することで求めることができる。一例として、特徴点間の関係を数値化して特徴量を算出し、画像間で特徴量の差分の絶対値を求め、求めた差分の絶対値がより小さい場合に、当該画像間の類似度が高いとする。
検索部103は、算出部102で算出された類似度に基づき、DB12に格納される各索引によって検索される各オブジェクトのうち、撮像画像40Aに含まれるオブジェクトとの類似度が高い画像を検索する。このとき、検索部103は、DB12に格納される各索引によって検索される各オブジェクトから、撮像画像40Aに含まれる各オブジェクトとの類似度が最も高いオブジェクトを含む1の索引を検索結果として出力する。
これに限らず、検索部103は、DB12に格納される各索引によって検索される各オブジェクトから、撮像画像40Aに含まれるオブジェクトとの類似度が高いオブジェクトを含む順に従い、所定数の索引を検索結果として出力してもよいし、類似度が閾値以上のオブジェクトを検索するための1または複数の索引を検索結果として出力することもできる。さらに、類似度が、撮像画像40Aについて算出された類似度の最大値から予め決められた範囲内(5%など)にある索引を、検索結果として出力することも考えられる。
提示部104は、検索部103による検索出力の索引に関連付けられた連携情報をDB12から取り出し、端末装置20に提示(送信)する。したがって、提示部104は、端末装置20に対して連携情報を送信する送信部の機能を備えている。この連携情報の提示は、当該連携情報を端末装置20に直接的に送信してもよいし、当該連携情報を含むWebページを生成し、端末装置20に向けて当該Webページヘのアクセス方法(URLなど)を提示する方法でもよい。端末装置20からこのWebページにアクセスすることで、連携情報を取得することができる。
これに限らず、端末装置20に、撮像画像40Aの撮像から、提示された連携情報の表示までの一連の動作を行うアプリケーションソフトウェア(以下、アプリケーションと略称する)を予めインストールしておき、提示された連携情報を、このアプリケーションを用いて取得することも可能である。
なお、画像検索サーバ11は、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、ROM(Read Only Memory)と、ハードディスクドライブなどのストレージ装置とを含む、一般的なコンピュータ装置(情報処理装置)により構成することができる。また、画像検索サーバ11は、1台のコンピュータ装置で構成されるのに限らず、例えば複数のコンピュータ装置上で分散的に動作する構成としてもよい。
上述した受信部100、抽出部101、算出部102、検索部103、提示部104および制御部110は、CPU上で動作する検索プログラムによって実現される。これに限らず、受信部100、抽出部101、算出部102、検索部103、提示部104および制御部110の一部または全部を、互いに協働する個別のハードウェアを用いて実現してもよい。実施形態に係る検索処理を実行するための検索プログラムは、インストール可能な形式または実行可能な形式のファイルでCD、DVDなどのコンピュータで読み取り可能な記録媒体に記録して提供される。
さらに、実施形態に係る検索処理を実行するための検索プログラムを、インターネットなどの通信ネットワークに接続されたコンピュータ上に格納し、通信ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態に係る検索処理を実行するための検索プログラムを、インターネットなどの通信ネットワーク経由で提供または配布するように構成してもよい。
実施形態に係る検索処理を実行するための検索プログラムは、例えば、上述した各部(受信部100、抽出部101、算出部102、検索部103、提示部104および制御部110)を含むモジュール構成となっており、実際のハードウェアとしてはCPUが例えばストレージ装置から当該検索プログラムを読み出して実行することにより上記各部が主記憶装置(例えばRAM)上にロードされ、各部が主記憶装置上に生成されるようになっている。
このような構成において、ユーザは、端末装置20を用いて例えばカタログ雑誌のページを撮像し、撮像画像40Aや撮像画像40Bを得る。この例では、撮像画像40Aおよび40Bは、それぞれ、カタログ雑誌の内容ページおよび表紙ページを撮像した撮像画像であるものとする。ユーザは、例えば撮像画像40Aを、ネットワーク10を介して画像検索サーバ11に送信する。
撮像画像40Aは、画像検索サーバ11の受信部100に受信され、受信された撮像画像40Aの特徴点が抽出部101で検出され、オブジェクトが抽出される。さらに、算出部102で、抽出部101で検出された特徴点に基づき、撮像画像40Aに含まれるオブジェクトと、DB12に格納される各索引によって検索される各オブジェクトとの類似度が算出される。この算出結果に基づき検索部103で索引が検索される。そして、提示部104は、検索部103の検索出力に基づきDB12から連携情報を取り出し、撮像画像40Aの送信元である端末装置20に提示する。
ユーザは、画像検索サーバ11から端末装置20に対して提示された連携情報に基づき、例えば商用サイト30Aにアクセスして、撮像画像40Aに含まれるオブジェクトが示す商品を購入などすることができる。
ここで、例えば図2(a)に画像130Aに含まれるオブジェクト131に酷似したオブジェクトを含む画像が、端末装置20で撮像画像40Aとして撮像されたものとする。また、DB12には、オブジェクト131を含む画像130Aと、オブジェクト131を縮小したオブジェクト132を含む画像130Bとが格納されているものとする。
この場合、撮像画像40Aの特徴点の検出結果から算出した類似度に基づく検索の結果、画像130Aではなく、画像130Bが検索されてしまう可能性がある。この場合、ユーザは、所望の連携情報を得ることができなくなってしまう。このような事態を防ぐために、実施形態では、検索部103において、対象領域(撮像範囲)とオブジェクトとのサイズの比率に基づき、DB12に格納される画像の検索を行う。
図2を用いて、より具体的に説明する。図2(a)に例示される画像130Aでは、オブジェクト131が画像130Aに対して大きなスペースを占めるように配置され、オブジェクト131に対して、オブジェクト131のサイズよりやや大きめのサイズで、対象領域134が設定されている。一方、図2(b)に例示される画像130Bでは、オブジェクト131が縮小されたオブジェクト132が配置されると共に、対象領域135が画像130Bの全面に対して、すなわち、オブジェクト132のサイズに対して十分大きなサイズで設定されている。
画像130Aにおいて、対象領域134のサイズに対するオブジェクト131のサイズの第1の比率を、例えばそれぞれの面積に基づき求めた値が1/2であるとする。これに対して、画像130Bにおいて、対象領域135のサイズに対するオブジェクト132のサイズの第2の比率を面積で求めた値は、例えば1/16となり、画像130Aの場合と比べて大きく異なる。なお、サイズの比率は、面積に基づき求める方法に限られない。このような、サイズの比率を示す情報は、予め求め、索引に含めてDB12に格納することが考えられる。
さらに、端末装置20から受信された撮像画像40Aについては、抽出部101で抽出されたオブジェクトのサイズと、撮像画像40A自体のサイズとの比率を求めることが考えられる。例えば撮像画像40Aが図2(a)に画像130Aで示されるような画像とし、撮像画像40Aのサイズに対するオブジェクト(オブジェクト131とする)のサイズの第3の比率が例えば1/4であるとする。
この場合、第3の比率は、上述した第1の比率および第2の比率のうち、第1の比率により近い。したがって、検索部103は、撮像画像40Aに対する検索結果として画像130Aに対応する索引を出力する。提示部104は、この画像130Aに対応する索引に関連付けられた連携情報を、端末装置20に対して提示する。このように、オブジェクトのサイズの画像サイズに対する比率に基づき索引の選択を行うことで、より的確に所望の索引を選択することができる。
図4は、このような、オブジェクトのサイズの比率に基づき画像を検索する処理を実現するためのDB12の一例の構成を示す。図4(a)は、DB12に格納される各索引データを識別するための索引テーブル120の例を示す。各索引データは、図4(a)に例示されるように、IDと、索引データのバイナリデータとが関連付けられてDB12に格納される。
また、IDは、DB12に格納される各索引データを識別可能であれば、形式は特に限定されない。DB12に格納される各索引データがカタログ雑誌の各ページのオブジェクトを検索するためのものである場合、IDとして当該オブジェクトが掲載されるページ番号を含む値を用いることができる。
図4(b)は、画像のIDと対象領域とを関連付ける対象領域テーブル121の一例を示す。この例では、対象領域は、タグを用いてデータの意味や構造を定義して記述するマークアップ言語の一種であるXML(Extensible Markup Language)を用いて記述される。後述するが、この対象領域の記述に対して、連携情報の記述も埋め込まれる。対象領域が記述されるXMLコードは、この対象領域テーブル121のフィールドに直接的に格納してもよいし、当該XMLコードを別途ファイルに記述し、当該フィールドにはこのファイル名とパスを記述してもよい。
図5は、図4(b)に示されるXMLコード140の一例を示す。この図5に示されるXMLコード140は、カタログ雑誌のある内容ページの対象領域を記述する例である。最も外側のタグ「<page>」および「</page>」に挟まれた部分により、ページが定義される。各部分1411、1412において、タグ「<hotspot>」および「</hotspot>」に挟まれた部分により、それぞれ1の対象領域が定義される。このように、1のページに対して複数の対象領域を定義することができる。
部分1411において、最初の行142は、タグ「<area>」および「</area>」に挟まれた部分により、対象領域のページ内での範囲が例えば左上隅の座標(x1,y1)および右下隅の座標(x2,y2)で定義される。
各部分1431、1432において、タグ「<link>」および「</link>」に挟まれた部分により、それぞれ1の連携情報が定義される。このように、1の対象領域に対して複数の連携情報を定義することができる。各部分1431において、タグ「<title>」および「</title>」に挟まれた部分により連携情報のタイトルが定義される。タグ「<type>」および「</type>」に挟まれた部分によりこの連携情報のタイプが定義される。また、この例では、連携情報として、タグ「<URI>」および「</URI>」に挟まれた部分により、ネットワーク10上でのアドレス情報が定義されている。
このように、XMLコード140により、ページ内の対象領域および当該対象領域における連携情報を定義しているため、ページ内の当該対象領域に含まれるオブジェクトに関連付けられる連携情報による機能を実行することができる。
図6は、実施形態に係る画像検索サーバ11の動作の例を示すフローチャートである。先ず、端末装置20で撮像されて得られた例えば撮像画像40Aが、ネットワーク10を介して画像検索サーバ11に対して送信される。ステップS100で、画像検索サーバ11において、受信部100は、この撮像画像40Aを受信する。次のステップS101で、抽出部101は、受信された撮像画像40Aに対して画像解析を行い特徴点を検出してオブジェクトの抽出を行う。
次のステップS102で、検索部103は、撮像画像40Aのサイズに対するオブジェクトのサイズの比率を算出する。なお、DB12に格納される各画像について、対象領域のサイズに対するオブジェクトのサイズの比率は、予め算出されているものとする。このDB12に格納される各画像の比率を示す情報は、上述したXMLコード140に埋め込んでおくことができる。
次のステップS103で、算出部102は、撮像画像40Aから抽出されたオブジェクトと、DB12に格納される各索引によって検索されるオブジェクトとを比較する。より具体的には、算出部102は、撮像画像40Aに含まれるオブジェクトと、DB12に格納される各索引によって検索されるオブジェクトとの各類似度を算出する。
次のステップS104で、検索部103は、ステップS103で算出した類似度に基づき、DB12に格納された索引のうち、撮像画像40Aに含まれるオブジェクトと合致するオブジェクトが検索される索引が有るか否かを判定する。この例では、DB12に含まれる索引に検索されるオブジェクトのうち、類似度が閾値以上であるオブジェクトを、撮像画像40Aに含まれるオブジェクトと合致するオブジェクトが検索される索引であると判定するものとする。
若し、ステップS104でオブジェクトが合致する索引が有ると判定した場合、検索部103は、処理をステップS105に移行させる。ステップS105で、検索部103は、DB12に格納される索引のうち、オブジェクトが複数の索引で合致しているか否かを判定する。若し、1の索引のみでオブジェクトが合致していると判定した場合、検索部103は、当該1の索引を検索出力として、処理を後述するステップS107に移行させる。一方、複数の索引でオブジェクトが合致していると判定した場合、検索部103は、処理をステップS106に移行させる。
ステップS106で、検索部103は、当該複数の索引それぞれによって検索される複数のオブジェクトのサイズの、対象領域のサイズに対する比率を各々求める。この複数のオブジェクトに関する比率は、予め求めておきDB12に格納しておいてもよい。それと共に、検索部103は、撮像画像40Aについて、撮像画像40Aのサイズに対するオブジェクトのサイズの比率を求める。そして、当該複数のオブジェクトのそれぞれについて求めた比率のうち、撮像画像40Aについて求めた比率に最も近い比率を求め、求めた比率に対応するオブジェクトを検索するための索引を選択して検索出力とし、処理をステップS107に移行させる。
ステップS107で、提示部104は、検索部103による検索出力の索引に対応付けられた連携情報をDB12から取り出す。そして、提示部104は、取り出した連携情報の、撮像画像40Aの送信元の端末装置20に対する提示を行う。そして、図6のフローチャートによる一連の処理が終了される。
なお、上述したステップS104で合致する索引がないと判定した場合、処理がステップS108に移行され、提示部104により、合致する索引がDB12に格納されていない旨を示すメッセージが、端末装置20に対して提示される。そして、図6のフローチャートによる一連の処理が終了される。
図7は、図6におけるステップS107の、索引の連携情報の提示処理の例を示すフローチャートである。提示部104は、先ずステップS200で、検索部103の検索出力の索引によって検索されるオブジェクトにおける、撮像画像40Aに対応する対象領域を特定する。次のステップS201で、提示部104は、DB12を参照し、特定した対象領域に関連付けられた連携情報が有るか否かを判定する。若し、有ると判定した場合、提示部104は、処理をステップS202に移行させ、当該対象領域に複数の連携情報が関連付けられているか否かを判定する。
提示部104は、ステップS202で、当該対象領域に対して複数の連携情報が関連付けられていると判定した場合、処理をステップS203に移行させる。ステップS203で、提示部104は、この複数の連携情報による各機能を示す機能リストを作成し、機能リストから1の機能を選択するための選択画面を端末装置20に対して提示する。例えば、特定された対象領域に対して、連携情報としてURLおよび電話番号が関連付けられている場合、URLに示されるアドレスにアクセスする機能と、電話番号への電話機能とを選択するための選択画面を生成し、端末装置20に対して提示する。そして、図7のフローチャートによる一連の処理が終了される。
一方、ステップS202で、提示部104は、当該対象領域に対して1の連携情報のみが関連付けられていると判定した場合は、処理をステップS204に移行させる。ステップS204では、この1の連携情報による機能を実行させるような画面を生成し、端末装置20に対して提示する。そして、図7のフローチャートによる一連の処理が終了される。
なお、上述のステップS201において、ステップS200で特定された対象領域に対して連携情報が関連付けられていないと判定した場合、処理をステップS205に移行させる。ステップS205で、提示部104は、予め定められた特定の画面を、端末装置20に対して提示する。そして、図7のフローチャートによる一連の処理が終了される。
上述では、ステップS106において、画像検索サーバ11側で、複数の索引から1の索引を選択しているが、これはこの例に限定されない。すなわち、複数の索引から1の索引を選択する処理を、ユーザが行うように促すことができる。
図8は、検索部103の検索出力による複数の索引から1を選択する処理を、ユーザが行うように促す場合の一例の処理を示すフローチャートである。上述した図6のステップS105で、撮像画像40Aに含まれるオブジェクトに対して複数の索引で合致していると判定した場合、検索部103は、処理を図8に示すステップS106’に移行させる。
処理がステップS106’に移行されると、提示部104は、ステップS300で、合致していると判定された複数の索引を示す情報をユーザに提示するための画面を生成し、端末装置20に対して提示する。例えば、提示部104は、複数の索引それぞれによって検索される各オブジェクトの画像を表示させる画面を生成して、端末装置20に対して提示することが考えられる。
提示部104は、端末装置20からの、複数の索引(オブジェクト画像)から1の索引(オブジェクト画像)が選択された選択結果が受信されるのを待機する(ステップS301)。端末装置20から、ステップS300で提示した複数の索引から1の索引を選択した旨を受信すると、提示部104は、ステップS302で、索引が合致していると判定された複数のオブジェクト画像から、受信結果に応じて1を選択する。そして、選択されたオブジェクトが検索される索引に関連付けられた連携情報をDB12から取り出して、端末装置20に対して提示する。
このように、複数の画像をユーザに提示することによっても、ユーザは、より的確に所望の画像を選択することができる。
このような構成において、端末装置20は、上述した画像検索サーバ11の提示部104により提示された各情報を、ネットワーク10上のWebサイトを閲覧するためのブラウザアプリケーションを用いて表示することができる。また、端末装置20は、このブラウザアプリケーションを用いて、画像検索サーバ11に対して要求やデータを送信することができる。
この場合、画像検索サーバ11において、提示部104は、端末装置20に対して各情報を提示するための表示制御情報を、例えばHTML(HyperText Markup Language)や各種スクリプト言語を用いて生成し、生成したファイルをネットワーク10上の所定のアドレスに置く。提示部104から端末装置20に対してこのアドレスを通知することで、端末装置20から当該表示制御情報にアクセスし、提示部104による各情報の提示を端末装置20に表示させることができる。
ここで、上述した、端末装置20からの撮像画像の送信から提示情報の表示までの、画像検索に係る一連の処理を、1つのアプリケーションソフトウェアで統合的に実行できると、ユーザにとって利便性が高い。実施形態では、この画像検索に係る一連の処理を、1つのアプリケーションソフトウェアで実行するものとし、このアプリケーションソフトウェアを画像検索用アプリと呼ぶ。
(第1の実施形態)
次に、第1の実施形態に係る情報処理システムについて説明する。図9は、第1の実施形態に係る情報処理システムの一例の構成を示す。図9において、情報処理システム1は、互いにネットワークにより接続された画像検索システム200Aおよび端末装置20を含む。画像検索システム200Aは、上述した画像検索システム200に対応する。
この例では、画像検索システム200Aは、それぞれ1以上の情報処理装置を含んで構成される複数の画像検索サーバ11A、11Bおよび11Cを含む。なお、画像検索サーバ11A、11Bおよび11Cは、それぞれ1以上のコンピュータにより構成される。また、各画像検索サーバ11A、11Bおよび11Cは、1以上のDB12を含むことができる。図9の例では、画像検索サーバ11AがDB12A1、12A2および12A3の3のDB12を含み、画像検索サーバ11BがDB12B1の1のDB12を含み、画像検索サーバ11CがDB12C1および12C2の2のDB12を含んでいる。
端末装置20は、撮像画像40と、画像検索サーバ11およびDB12を指定する指定情報とを、画像検索システム200Aに対して送信することができる。画像検索システム200Aは、端末装置20から送信された指定情報に基づき、撮像画像40による検索に使用する画像検索サーバ11およびDB12を選択する。
画像検索システム200Aにおいて、各画像検索サーバ11A、11Bおよび11Cに対してサーバ名が付与される。この例では、各画像検索サーバ11A、11Bおよび11Cのサーバ名は、それぞれ画像検索サーバ#0、#1および#2とされている。同様に、画像検索システム200Aにおいて、各DB12A1、12A2および12A3、DB12B1、ならびに、DB12C1および12C2に対して、DB名が付与される。この例では、各DB12A1、12A2および12A3のDB名がそれぞれDB#1、#2および#3とされ、DB12B1のDB名がDB#11とされ、DB12C1および12C2のDB名がそれぞれDB#21および#22とされている。
端末装置20は、撮像画像40にサーバ名およびDB名を付加して、画像検索システム200Aに送信する。画像検索システム200Aは、受信した撮像画像40に付加されたサーバ名およびDB名に従って、各画像検索サーバ11A、11Bおよび11Cと、各DB12A1、12A2および12A3、DB12B1、ならびに、DB12C1および12C2とから、画像検索に用いる画像検索サーバおよびDBを決定する。
なお、以下では、画像検索サーバ11A、11Bおよび11Cについて、これらを特に区別しない場合、画像検索サーバ11として説明する。同様に、DB12A1、12A2および12A3、DB12B1、ならびに、DB12C1および12C2について、これらを特に区別しない場合、DB12として説明する。
端末装置20は、上述した画像検索用アプリ220と、それぞれ画像検索用アプリ220の機能を利用する1以上の特定アプリとを含む。図9の例では、特定アプリとしてアプリ221A、221Bおよび221Cの3のアプリが示されている。第1の実施形態では、画像検索用アプリ220は、この特定アプリから呼び出されて使用される。勿論、端末装置20は、画像検索用アプリ220を呼び出す特定アプリを1つだけ含んでもよいし、図9のように複数の異なる特定アプリ221A、221Bおよび221Cを含んでいてもよい。また、画像検索用アプリ220は、単独で起動して使用することも可能である。
以下、特に記載の無い限り、複数の特定のアプリ221A、221Bおよび221Cを、特定アプリとして代表させて説明する。
特定アプリは、画像検索用アプリ220を呼び出す際に、当該画像検索用アプリ220に対してパラメータを渡すことができる。パラメータは、呼び出し元を示す情報を含み、さらに他の値を含むことができる。このようなパラメータの形式としては、URLスキームを用いることができる。URLスキームは、スキーム名とスキーム毎に定められた表現形式による所定の情報とを含み、スキーム名と所定の情報とがコロン「:」で区切られて記述される。例えば、スキーム名の部分に呼び出し元を示す情報(アプリ名など)を記述し、コロンの後に、所定の形式で他の値(変数、コマンドなど)を記述する。
画像検索用アプリ220は、特定アプリから渡されたパラメータに応じて、振る舞いを変えることができる。例えば、画像検索用アプリ220は、渡されたパラメータに応じて、画像検索用アプリ220の端末装置20における表示上の外観(スキンと呼ぶ)や、ユーザインタフェースを変えることができる。
また例えば、特定アプリは、パラメータに上述したサーバ名およびDB名を含めて、画像検索用アプリ220に渡すことができる。画像検索用アプリ220は、特定アプリから渡されたパラメータに含まれるサーバ名およびDB名を撮像画像40に付加して、画像検索システム200Aに送信する。これにより、画像検索システム200Aは、同一の撮像画像40について異なる画像検索サーバ11およびDB12を用いて画像検索を実行することができ、統一の撮像画像40に対して異なる連携情報を、検索結果として端末装置20に返すことができる。
例えば、画像検索用アプリ220は、特定アプリから、サーバ名「画像検索サーバ#0」およびDB名「DB#1」を含むパラメータAを渡されて呼び出されたものとする。この場合、画像検索用アプリ220は、撮像画像40にサーバ名「画像検索サーバ#0」およびDB名「DB#1」を付加して画像検索システム200Aに送信する。画像検索システム200Aは、撮像画像40に付加されたサーバ名およびDB名に従い、画像検索サーバ11AによりDB12A1を用いて画像検索を行い、検索結果として得られた、例えばコンテンツ配信サイト210AのURLを示す連携情報を端末装置20に送信する。
また例えば、画像検索用アプリ220は、アプリ221Bから、サーバ名「画像検索サーバ#1」およびDB名「DB#11」を含むパラメータBを渡されて呼び出されたものとする。この場合、画像検索用アプリ220は、撮像画像40にサーバ名「画像検索サーバ#1」およびDB名「DB#11」を付加して画像検索システム200Aに送信する。画像検索システム200Aは、撮像画像40に付加されたサーバ名およびDB名に従い、画像検索サーバ11BによりDB12B1を用いて画像検索を行い、検索結果として得られた、例えばコンテンツ配信サイト210BのURLを示す連携情報を端末装置20に送信する。
図10は、第1の実施形態に係る端末装置20の一例の構成を示す。図10に例示される端末装置20において、バス401に対してCPU402、ROM403、RAM404および表示制御部405が接続される。また、バス401に対して、ストレージ407、データI/F408、入力部409、通信I/F410および撮像部411が接続される。ストレージ407は、データを不揮発に記憶することが可能な記憶媒体であって、例えばフラッシュメモリなどの不揮発性の半導体メモリである。これに限らず、ストレージ407としてハードディスクドライブを用いてもよい。
CPU402は、ROM403およびストレージ407に記憶されるプログラムに従い、RAM404をワークメモリとして用いて、この端末装置20の全体を制御する。表示制御部405は、CPU402により生成された表示制御信号を、表示装置406が表示可能な信号に変換して出力する。
ストレージ407は、上述のCPU402が実行するためのプログラムや各種データが格納される。データI/F408は、外部からのデータの入力を行う。データI/F408としては、例えば、USB(Universal Serial Bus)やIEEE1394(Institute of Electrical and Electronics Engineers 1394)などによるインタフェースを適用することができる。
入力部409は、ユーザ入力を受け付けて所定の制御信号を出力する入力デバイスを含む。ユーザは、例えば表示装置406に対する表示に応じて入力デバイスを操作することで、端末装置20に対して指示を出すことができる。なお、ユーザ入力を受け付ける入力デバイスを、表示装置406と一体的に構成し、押圧した位置に応じた制御信号を出力すると共に、表示装置406の画像を透過するタッチパネルとして構成すると、好ましい。
通信I/F410は、所定のプロトコルを用いてネットワーク10と通信を行う。撮像部411は、光学系と、撮像素子と、光学系および撮像素子の制御駆動回路と、撮像素子から出力される信号に所定の処理を施して画像データとして出力する。撮像部411は、入力部409に対するユーザ操作による指示に従い、撮像やズームなどの機能を実行する。撮像部411で撮像され得られた撮像画像は、例えばバス401を介して通信I/F410に送られ、CPU402の命令に従いネットワーク10を介して画像検索サーバ11に送信される。
図11は、第1の実施形態に係る端末装置20の機能を説明するための一例の機能ブロック図である。図11において、端末装置20は、制御部2001と、ストレージ2002と、通信部2003と、UI(ユーザインタフェース)部2004とを含む。さらに、端末装置20は、第1実行部2200と、第2実行部2300とを含む。
第1実行部2200は、画像検索用アプリ220に対応し、第2実行部2300は、特定アプリに対応する。したがって、第1実行部2200は、第2実行部2300に呼び出されて起動される。また、第1実行部2200は、第2実行部2300から呼び出された場合、処理を終了すると第2実行部2300に処理(実行権)を戻す。
制御部2001は、端末装置20の全体の動作を制御する。ストレージ2002は、上述したストレージ407に対応し、端末装置20で動作するためのプログラムや各種データなどが格納される。通信部2003は、例えば通信I/F410を制御し、ネットワークを介してなされる外部との通信を行う。
UI部2004は、入力部2010および表示部2011を含む。入力部2010は、図10に示した入力部409がユーザ操作に応じて出力した制御信号を受け付ける。表示部2011は、図10に示した表示装置406に実行画面を表示するための表示情報を生成する。このとき、UI部2004は、表示部2011に表示される実行画面上の位置と、入力部2010が受け付ける、入力部409に対する接触位置に応じた制御信号とを関連付ける。
上述した制御部2001、通信部2003およびUI部2004、ならびに、第1実行部2200および第2実行部2300は、CPU402上で動作する複数のプログラムによって実現される。以下、これら複数のプログラムを、一括して「端末用プログラム」と呼ぶ。端末用プログラムは、ネットワーク10に接続されたコンピュータ上に格納し、図示されないネットワーク経由でダウンロードさせることにより提供するように構成することができる。また、端末用プログラムを、ネットワーク経由で提供または配布するように構成してもよい。端末用プログラムのうち一部または全部を、ROM403に予め記憶させて提供することも考えられる。
これに限らず、端末用プログラムは、インストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。この場合、記録媒体に記録された端末用プログラムは、例えばデータI/F408に接続された外部のドライブ装置を介して端末装置20に供給される。これに限らず、記録媒体に記録された端末用プログラムを、パーソナルコンピュータなど他の情報処理装置上に一旦記憶させ、この他の情報処理装置から通信I/F410やデータI/F408を介した通信により、端末装置20に供給してもよい。
端末用プログラムは、例えば、上述した各部(制御部2001、通信部2003およびUI部2004、ならびに、第1実行部2200および第2実行部2300)を含むモジュール構成となっており、実際のハードウェアとしてはCPU402が例えばストレージ407から端末用プログラムを読み出して実行することにより上記各部が主記憶装置(例えばRAM404)上にロードされ、各部が主記憶装置上に生成されるようになっている。
図12は、第1の実施形態に係る、端末装置20上における端末用プログラムの構成の例を概略的に示す。図12において、端末用プログラム2000は、アプリケーション層2100、API層2101、OS層2102およびハードウェアI/F層2103を含む。アプリケーション層2100は、端末装置20の利用者が端末装置20上で実行したい作業を実施する機能を直接的に有する、アプリケーションソフトウェア(以下、アプリと略称する)を含む。図12の例では、アプリケーション層2100は、第1実行部2200および第2実行部2300を含んでいる。
API層2101は、API(Application Programming Interface)を含み、アプリケーション層2100と後述するOS層2102との仲介を行う。OS層2102は、OS(Operating System)を含み、端末用プロブラム2000の全体の動作を制御する。OSは、アプリケーション層2100の各アプリが共通して利用できる様々なサービスを含む。例えば、制御部2001、通信部2003およびUI部2004は、OS層2102に含まれる。ハードウェアI/F(HW I/F)層2103は、OS層2102と、ストレージ2002や通信I/F410などのハードウェアとの仲介を行う。
なお、アプリケーション層2100に含まれるアプリのうち、インターネットなどのネットワーク上の様々なデータを閲覧するのに好適なブラウザアプリや、電子メールのやり取りを行うメーラアプリなど基本的な機能を提供するアプリは、端末装置20に対して、OSと共に、初期から標準で搭載されている場合が多い。
アプリケーション層2100に含まれる各アプリは、API層2101を介してOS層2102とデータやコマンドの受け渡しを行う。これにより、各アプリは、端末装置20が有するハードウェア機能を利用したり、各アプリ間でのデータやコマンドのやり取りを行う。
第1に実施形態に係る第1実行部2200は、第2実行部2300から呼び出されることで、主記憶装置上にロードされるようにできる。また、第1実行部2200を構成するためのプログラムは、当初は端末装置20上に存在せず、第2実行部2300から呼び出された際に、ネットワークなどから提供されるようにもできる。
図13を用いて、第1の実施形態に係る、第2実行部2300が第1実行部2200を呼び出す際の動作の流れについて、概略的に説明する。ここでは、当初、第2実行部2300が起動されて主記憶装置上にロードされた状態において、第1実行部2200が未だ起動されていないものとする。すなわち、当初のアプリケーション層2100は、第2実行部2300が含まれる一方で、第1実行部2200が含まれていない。この状態において、第2実行部2300が第1実行部2200を呼び出す。
第2実行部2300は、例えばユーザ操作により第1実行部2200の呼び出しが指示されると、図13(a)に例示されるように、OSに対して第1実行部2200の起動を要求する(ステップS10)。OSは、この要求に応じて、第1実行部2200を実行させるためのプログラム(第1実行部用プログラムと呼ぶ)が端末装置20にインストール済みか否かを判定する。ここでは、OSは、ストレージ2002に第1実行部用プログラムが格納されているか否かでこの判定を行うものとする(ステップS11)。これに限らず、OSは、RAM404などに予め読み込んだ、端末装置20にインストール済みのアプリのリストなどを参照してこの判定を行なってもよい。
OSは、第1実行部用プログラムがインストール済みであると判定した場合、図13(b)に例示されるように、第1実行部用プログラムを例えばストレージ2002から読み出して主記憶装置であるRAM404にロードし(ステップS12)、第1実行部2200を起動させる。そして、OSは、例えばアプリの実行権を第2実行部2300から第1実行部2200に移動させる。
一方、OSは、第1実行部用プログラムが端末装置20に未だインストールされていないと判定した場合、図13(c)に例示されるように、通信I/F410を制御して、ネットワークを介して外部から当該第1実行部用プログラムを取得する(ステップS13)。取得された第1実行部用プログラムは、一旦ストレージ2002に格納され、所定の手順にてインストール処理が開始される。第1実行部用プログラムがインストールされると、OSは、上述したステップS12の処理により、第1実行部2200を起動させる。
図14は、第1の実施形態に係る第1実行部2200の機能を説明するための一例の機能ブロック図である。図14において、第1実行部2200は、撮像画像取得部2201と、送信部2202と、受信部2203と、設定部2204と、受付部2205と、呼出部2206と、保存部2207と、提示部2208とを含む。
撮像画像取得部2201は、撮像部411による撮像動作を制御し、撮像画像を取得する。送信部2202は、ネットワークを介した情報の送信処理を行う。例えば、送信部2202は、画像検索システム200Aのネットワーク上のアドレス情報を予め有し、ネットワークを介した画像検索システム200Aに対する送信処理を行う。撮像画像取得部2201が取得した撮像画像は、送信部2202により画像検索システム200Aに送信される。受信部2203は、ネットワークを介して送信された情報の受信処理を行う。例えば、受信部2203は、画像検索システム200Aに含まれる画像検索サーバ11の提示部104から提示される連携情報を受信する。
設定部2204は、外部から渡されたパラメータに従い、第1実行部2200の実行時の振る舞いを設定する。例えば、設定部2204は、起動された第1実行部2200の表示上の外観(スキン)を、パラメータに応じて設定することができる。例えば、設定部2204は、異なる幾つかのスキンを予め用意し、用意されたスキンからパラメータに応じたスキンを選択することが考えられる。
なお、スキンは、例えば画像データや描画コマンド、レイアウト情報を含んで構成される。第1実行部2200は、スキンを構成するデータを予め複数持つことができる。これに限らず、第1実行部2200は、スキンを構成するデータをネットワークを介して外部から取得してもよいし、第1実行部2200を呼び出す第2実行部2300から取得してもよい。
また、設定部2204は、第1実行部2200のUIをパラメータに応じて設定することができる。例えば、設定部2204は、パラメータに応じて、UIに設けられるボタンなど各部品の表示やレイアウトを設定することが考えられる。このとき、第1実行部2200は、UIに設けられる各部品の表示やレイアウトといった、UIを構成するための情報を、予め複数持つことができる。これに限らず、第1実行部2200は、UIを構成するための情報をネットワークを介して外部から取得してもよいし、第1実行部2200を呼び出す第2実行部2300から取得してもよい。
さらに、設定部2204は、指定されたパラメータに基づき、画像検索に使用する画像検索サーバ11とDB12とを設定することができる。例えば、指定されたパラメータに「サーバ名」および「DB名」が含まれている場合、これら「サーバ名」および「DB名」を送信部2202に渡す。送信部2202は、撮像画像40を画像検索システム200Aに送信する際に、これら「サーバ名」および「DB名」を撮像画像40に付加する。
受付部2205は、例えば第2実行部2300から渡されたパラメータを受け付ける。受付部2205は、受け付けたパラメータを、例えば設定部2204に渡す。呼出部2206は、当該第1実行部2200を呼び出した呼び出し元を呼び出す。例えば、呼出部2206は、第2実行部2300から呼び出されて起動された第1実行部2200が終了される際に、当該第2実行部2300を呼び出す処理を行う。
保存部2207は、画像検索システム200Aによる画像検索結果に基づき取得したコンテンツデータを保存する。このとき、保存部2207は、コンテンツデータを、第2実行部2300から渡されたパラメータに含まれる、呼び出し元を示す情報に関連付けて保存することができる。これに限らず、保存部2207は、コンテンツデータと、コンテンツデータの取得元を示す情報(URLなど)とを関連付けて保存してもよい。このように、コンテンツデータを呼び出し元や取得元と関連付けて保存することでコンテンツデータが分別可能とされ、コンテンツデータをコレクション化することができる。
提示部2208は、受信部で受信された連携情報に基づき提示情報を生成し、表示部2011に渡す。一例として、端末装置20が画像検索システム200Aに送信した1の撮像画像40に基づく画像検索により、複数の連携情報が取得された場合について考える。なお、図5の部分1431および1432に示されるように、1のオブジェクトに対して複数の連携情報を定義することができる。
提示部2208は、取得された複数の連携情報を、受付部2205に受け付けられたパラメータを用いてフィルタリングして、所定の連携情報を抽出することができる。例えば、パラメータを、1の連携情報の一部または全部を含むように構成する。提示部2208は、取得された複数の連携情報とパラメータとを比較して、パラメータに適合する連携情報を抽出する。
提示部2208は、複数の連携情報から1の連携情報を抽出した場合に、当該複数の連携情報において、抽出された1の連携情報を強調表示するように、提示情報を生成することができる。表示部2011は、この提示情報に基づき、抽出された1の連携情報を、他の複数の連携情報に対して強調表示するよう、表示情報を生成する。強調表示を行う方法は、太字化や表示色反転など、特に限定されない。これに限らず、提示部2208は、複数の連携情報から1の連携情報を抽出した場合に、当該複数の連携情報において、抽出された1の連携情報のみを表示するように提示情報を生成してもよい。
図15は、第1の実施形態に係る第2実行部2300の機能を説明するための一例の機能ブロック図である。図15において、第2実行部2300は、処理部2301と、呼出部2302とを含む。
処理部2301は、第2実行部2300に特定の処理を実行する。例えば、第2実行部2300がある歌手のプロモーションを行うためのアプリである場合、処理部2301は、当該歌手に関するプロフィールの表示や、プロモーションビデオの再生、イベント情報の表示、コンサートのチケット購入などの処理を行う。また例えば、第2実行部2300が商店の宣伝を行うためのアプリである場合、処理部2301は、店舗のナビゲーション情報や商品情報の表示や、商品の通信販売などの処理を行う。
呼出部2302は、第1実行部2200を呼び出す。例えば、呼出部2302は、ユーザ操作などに応じて図13(a)〜図13(c)のステップS10〜ステップS13の処理を行い、第1実行部2200を起動させる。また、呼出部2302は、起動させる第1実行部2200に渡すパラメータを予め有する。呼出部2302は、第1実行部2200を起動させる際に、第1実行部2200に対してこのパラメータを渡す。パタメータは、例えば、第2実行部2300からOSを介して第1実行部2200に渡される。
(第1の実施形態の第1の適用例)
次に、第1の実施形態の第1の適用例について説明する。この第1の適用例は、第2実行部2300に呼び出された第1実行部2200が、第2実行部2300に指定される画像を撮像画像40として取得して画像検索を行うことで、特定のコンテンツを取得できるようにしたものである。
図16は、第1の実施形態の第1の適用例による処理の流れを概略的に示す。なお、ここでは、第2実行部2300である特定アプリを、例えばプロモーションや告知を行うための特定アプリであるものとするが、第1の適用例に適用可能な特定アプリはこの例に限定されない。端末装置20において特定アプリが起動されると、端末装置20の表示装置406に特定アプリのトップ画面1000が表示される。この例では、トップ画面1000の下部に、当該特定アプリの各機能に対応するボタン画像が表示される。ユーザは、所望の機能に対応するボタン画像の位置に手指などで接触することで、特定アプリの当該機能を実行させることができる。
なお、この時点では、第1実行部2200である画像検索用アプリ220は、端末装置20において未だ起動されていないものとする。また、以下では、ボタン画像を単に「ボタン」と呼び、ボタン画像の位置に接触する行為を「ボタンを操作する」と呼ぶ。
特定アプリは、トップ画面1000における所定のボタンが操作されると、表示装置406の表示を告知画面1001に切り替える(ステップS20)。この例では、指定された被写体、例えばポスター1200を撮像した撮像画像40に基づき画像検索システム200Aで画像検索を行うことで、所定のコンテンツ、例えば特典動画へのアクセスを行うURLが取得できるようになっている。ここでは、図9のコンテンツ配信サイト210Aが当該特典動画を配信するものとする。
告知画面1001において、画像検索の機能の追加を行うためのボタン1011が配される。特定アプリは、このボタン1011が操作されると、画像検索用アプリ220を呼び出す。このとき、端末装置20は、画像検索用アプリ220がインストールされているか否かを判定する。例えば、特定アプリは、図13(a)のステップS10に示されるように、OSに対して画像検索用アプリ220の起動を要求する。OSは、この要求に応じて、ステップS11で画像検索用アプリ220がインストールされているか否かを判定する(ステップS11)。
端末装置20により画像検索用アプリ220がインストールされていると判定された場合は、特定アプリは、当該画像検索用アプリ220を呼び出し起動させる(ステップS21)。その際、特定アプリは、起動される画像検索用アプリ220に対して所定のパラメータを渡す。このパラメータは、特定アプリの名称など特定アプリを示す情報と、ポスター1200を撮像した撮像画像40に対して画像検索を行うための画像検索サーバ11およびDB12のサーバ名およびDB名の情報とを含む。ここで、パラメータに含まれるサーバ名およびDB名は、特定アプリに依存する所定のサーバ名およびDB名が用いられる。
パラメータは、さらに、画像検索用アプリ220が起動された際の実行画面(例えば画像検索用アプリ画面1002)のスキンを設定するための情報や、画像検索用アプリ220のUIを設定するための情報を含めてもよい。
一方、端末装置20は、画像検索用アプリ220の初回利用時など、画像検索用アプリ220がインストールされていないと判定した場合は、当該画像検索用アプリ220をインストールするためのプログラムを、ネットワークなどを介して外部から取得する必要がある。そのため、端末装置20において、ステップS22で、特定アプリにより、表示装置406における表示を、当該プログラムをネットワークを介してダウンロード(DL)するためのDL画面1003に切り替えられる。
端末装置20は、このDL画面1003に対する所定のユーザ操作に応じて、当該プログラムのダウンロードおよびインストールを開始する(ステップS23)。例えば、OSは、図13(c)に例示されるように、通信I/F410を制御して、ネットワークを介して外部から当該プログラムを取得し(ステップS13)、端末装置20に対するインストールを行う。
当該プログラムのインストールが完了すると、インストールされた当該プログラムが自動的に実行され、画像検索用アプリ220が起動される。画像検索用アプリ220は、起動されると、表示装置406の表示を画像検索用アプリ画面1002に切り替える。
画像検索用アプリ220が起動された端末装置20において、指定されたポスター1200を被写体として、画像検索用アプリ画面1002に配される所定のボタンを操作することで、当該ポスター1200の画像が撮像画像40として取得される(ステップS24)。画像検索用アプリ220は、このポスター1200を撮像した撮像画像40を画像検索システム200Aに送信する。このとき、画像検索用アプリ220は、特定アプリから渡されたパラメータに含まれるサーバ名およびDB名を撮像画像40に付加して画像検索システム200Aに送信する。
画像検索システム200Aは、撮像画像40に付加されるサーバ名およびDB名に従い画像検索サーバ11およびDB12を選択し、撮像画像40に基づく画像検索を行う。画像検索システム200Aは、例えば特典動画に対するアクセス先を示す1の連携情報を検索結果として取得し、端末装置20に送信する(ステップS25)。この連携情報は、端末装置20において画像検索用アプリ220に受信される。
画像検索用アプリ220は、受信した連携情報に従いコンテンツ配信サイト210Aにアクセスし、コンテンツとして特典動画を取得する。画像検索用アプリ220は、表示装置406の表示をコンテンツ表示画面1003に切り替え、取得した特典動画を表示させる。このとき、画像検索用アプリ220は、呼び出し元の特定アプリを示す情報1004をコンテンツ表示画面1003に表示させると、好ましい。
なお、画像検索用アプリ220は、ステップS25で取得されたコンテンツ(特典画像)を保存部2207により保存することができる(ステップS26)。保存部2207は、当該コンテンツと、呼び出し元を示す情報、あるいは、特典動画を取得したコンテンツ配信サイト210Aを示す情報とを関連付けて、例えばストレージ407に保存する。
画像検索用アプリ220は、コンテンツ表示画面1003または撮像画像40取得後の画像検索用アプリ画面1002に対する、コンテンツの保存を要求する所定の操作に応じて、表示装置406の表示画面をコンテンツ保存画面1006に切り替える。画像検索用アプリ220は、このコンテンツ保存画面1006に対する、コンテンツの保存を決定する所定の操作に応じて、保存部2207により取得したコンテンツを保存する。保存したコンテンツは、コレクション表示領域1007に例えば一覧で表示される。
コンテンツ表示画面1003において、戻るボタン1005を操作することで、呼び出し元の特定アプリに戻ることができる。より具体的には、戻るボタン1005が操作されると、呼出部2206は、呼び出し元である特定アプリを呼び出す(ステップS27)。このときの呼び出し動作は、図13(a)および図13(b)でステップS10〜ステップS12を用いて説明した動作と略共通である。
第1の適用例に示されるように、第1の実施形態に係る画像検索用アプリ220は、起動時に特定アプリから渡されるパラメータに応じた特定コンテンツを、撮像画像40に基づく画像検索により取得することができる。そのため、特定アプリの提供側は、特定アプリに画像検索用アプリ220の機能を追加する機能拡張を容易に行うことができる。
(第1の実施形態の第2の適用例)
次に、第1の実施形態の第2の適用例について説明する。この第2の適用例は、第2実行部2300に呼び出された第1実行部2200が、撮像画像40に基づく画像検索により取得された連携情報を、第2実行部2300から渡されたパラメータに従い選択する例である。
図17は、第1の実施形態の第2の適用例による処理の流れを概略的に示す。なお、ここでは、第2実行部2300である特定アプリを、ある商店が店舗の案内やネットワークを介しての商品の販売(電子商取引)を行うために提供する特定アプリであるものとするが、第2の適用例に適用可能な特定アプリは、この例に限定されない。端末装置20において特定アプリが起動されると、端末装置20の表示装置406に特定アプリのトップ画面1100が表示される。この例では、トップ画面1100の上部に商店名「XXYYZZ」が表示され、その下から、当該特定アプリの各種機能を実行させるための各ボタンが配される。各ボタンのうち、ボタン1110は、画像検索の機能の追加を行うためのボタンである。
なお、この時点では、第1実行部である画像検索用アプリ220は、端末装置20において未だ起動されていないものとする。
特定アプリは、トップ画面1100においてボタン1110が操作されると、画像検索用アプリ220を呼び出す。このとき、端末装置20は、画像検索用アプリ220がインストールされているか否かを判定する。端末装置20により画像検索用アプリ220がインストールされていると判定された場合、特定アプリは、当該画像検索用アプリ220を呼び出し起動させる(ステップS30)。画像検索用アプリ220は、起動されると、表示装置406の表示を画像検索用アプリ画面1101に切り替える。
ここで、特定アプリは、画像検索用アプリ220を呼び出す際に、当該画像検索用アプリ220に対して所定のパラメータを渡す。このパラメータは、特定アプリの名称など特定アプリを示す情報と、撮像した撮像画像40に対して画像検索を行うための画像検索サーバ11およびDB12のサーバ名およびDB名の情報とを含む。このとき、サーバ名およびDB名は、画像検索システム200Aにおけるデフォルトのサーバ名およびDB名を用いる。
パラメータは、さらに、画像検索用アプリ220が起動された際の実行画面(例えば画像検索用アプリ画面1101)のスキンを設定するための情報や、画像検索用アプリ220のUIを設定するための情報を含めてもよい。
一方、端末装置20において画像検索用アプリ220がインストールされていないと判定された場合、特定アプリは、ステップS31で、表示装置406における表示を、画像検索用アプリ220をインストールするためのプログラムをネットワークを介してダウンロードするためのDL画面1102に切り替える。
特定アプリは、このDL画面1102に対する所定のユーザ操作に応じて、当該プログラムのダウンロードおよびインストールを開始する(ステップS32)。当該プログラムのインストールが完了すると、インストールされた当該プログラムが自動的に実行され、画像検索用アプリ220が起動される(ステップS30)。画像検索用アプリ220は、起動されると、表示装置406の表示を画像検索用アプリ画面1101に切り替える。
この第2の適用例では、画像検索用アプリ220が起動された端末装置20による、画像検索のための被写体は、特定アプリの提供元の商店が取り扱う商品の広告媒体1201となる。広告媒体1201の制作者は、広告媒体1201に含まれる商品の画像などをオブジェクトとして、画像検索システム200Aに予め登録する(ステップS50)。
第2の適用例の場合、広告媒体1201の制作者は、例えば広告媒体1201が広告する商品のメーカであり、商店すなわち特定アプリの提供元とは直接的な関連性が無い可能性が高い。すなわち、同一の商品が複数の商店により販売され、これら複数の商店により同一の商品を紹介する同一内容の広告媒体1201が用いられることになる。
また、広告媒体1201に含まれるオブジェクトを画像検索システム200Aに登録する際に、当該広告媒体1201が広告する商品を扱う複数の商店にそれぞれ対応する複数の連携情報が、当該オブジェクトに関連付けられる可能性がある。例えば、1の商品の画像によるオブジェクトに対し、当該商品を扱う商店A、BおよびCにそれぞれ対応する複数の連携情報が、画像検索システム200Aに登録される。
また、各商店A、BおよびCは、1の商品の画像によるオブジェクトに対して、それぞれ複数の連携情報を関連付けて登録することができる。例えば、1の商品の画像によるオブジェクトに対して、当該商品の詳細を表示させるための連携情報と、当該商品をネットワークを介して購入するための連携情報とを関連付けて登録することが考えられる。
端末装置20において、広告媒体1201を被写体として、画像検索用アプリ画面1101に配される所定のボタンを操作することで、当該広告媒体1201の画像が撮像画像40として取得される(ステップS33)。画像検索用アプリ220は、この広告媒体1201を撮像した撮像画像40を画像検索システム200Aに送信する。このとき、画像検索用アプリ220は、特定アプリから渡されたパラメータに含まれる、サーバ名およびDB名を撮像画像40に付加して画像検索システム200Aに送信する。
なお、第2の適用例においては、このサーバ名およびDB名の撮像画像40に対する付加は、省略することができる。画像検索システム200Aは、端末装置20から送信された撮像画像40にサーバ名およびDB名が付加されていない場合、システムにデフォルトの画像検索サーバ11およびDB12を使用して、画像検索を行う。
画像検索システム200Aは、撮像画像40に付加されるサーバ名およびDB名に従い画像検索サーバ11およびDB12を選択し、撮像画像40に元づく画像検索を行う。ここでは、サーバ名およびDB名にデフォルト値が用いられているので、画像検索システム200Aは、システムにデフォルトの画像検索サーバ11およびDB12を選択する。なお、撮像画像40に対するサーバ名およびDB名の付加が省略されている場合でも、画像検索システム200Aは、システムにデフォルトの画像検索サーバ11およびDB12を選択する。
画像検索システム200Aは、広告媒体1201を撮像した撮像画像40に基づき画像検索を行う。そして、広告媒体1201に含まれるオブジェクトに対応する連携情報を取得する。ここでは、上述したように、当該オブジェクトに対して商店A、BおよびCにそれぞれ対応する3の連携情報が関連付けられているものとし、画像検索システム200Aは、画像検索の結果、この3の連携情報を取得する。
画像検索システム200Aは、検索結果として取得した3の連携情報を、端末装置20に送信する(ステップS34)。この3の連携情報は、端末装置20において画像検索用アプリ220に受信される。
画像検索用アプリ220は、連携情報を受信すると、受信した連携情報のうち、当該画像検索用アプリ220を呼び出した特定アプリに対応する連携情報を抽出する。
例えば、特定アプリが画像検索用アプリ220に渡すパラメータに含まれる、特定アプリを示す情報を、当該特定アプリに対応する連携情報の一部を含むように、予め作成する。一例として、連携情報がURLである場合、URLのドメイン名を特定アプリを示す情報としてパラメータに含めることが考えられる。この場合、画像検索用アプリ220は、受信した各連携情報(URL)と、パラメータに含まれる特定アプリを示す情報とを比較して、パラメータに含まれる特定アプリを示す情報と一致するドメイン名を含む連携情報を、特定アプリに対応する連携情報として抽出する。このとき、ドメイン名が同一でパス名が異なる複数の連携情報が存在する場合、この複数の連携情報を抽出することができる。
このように、複数の連携情報をパラメータに基づきフィルタリングすることで、画像検索用アプリ220を呼び出した特定アプリに対応する連携情報を抽出することが可能である。
画像検索用アプリ220は、パラメータに基づき抽出された連携情報に基づき、関連情報表示画面1102を生成し、表示装置406に表示させる。関連情報表示画面1102は、広告媒体1201に含まれるオブジェクトに関連する関連情報を指定する各ボタンが領域1103に配される。ユーザは、領域1103に配される所望の関連情報を指定するボタンを操作することで、表示装置406の表示を、指定された関連情報を表示する画面に切り替えることができる。
一例として、領域1103に、複数のボタンを配する。複数のボタンのうち第1のボタンは、例えば、広告媒体1201に含まれるオブジェクトが示す商品の詳細情報を提示するURLを指定する。画像検索用アプリ220は、第1のボタンが操作されると、当該URLにアクセスして、表示装置406の表示を、当該URLによる商品詳細情報を表示するコンテンツ表示画面1104に切り替える(ステップS35)。
図17の例では、画像検索用アプリ220は、端末装置20に標準で搭載されるブラウザアプリを、URLをパラメータとして渡して起動して当該URLにアクセスしている。この場合、当該ブラウザアプリによる画面が、コンテンツ表示画面1104となる。これに限らず、画像検索用アプリ220の内部の機能を用いてコンテンツ表示画面1104を表示させてもよい。
第2のボタンは、例えば、当該商品をネットワークを介して購入するためのURLを指定する。画像検索用アプリ220は、第2のボタンが操作されると、当該URLにアクセスして、表示装置406の表示を、当該URLによる商品購入画面1105に切り替える(ステップS36)。なお、この例では、商品購入画面1105から特定アプリトップ画面1100に移行することができるようになっている(ステップS37)。
第3のボタンは、例えば、関連情報を端末装置20に保存する(ステップS38)。画像検索用アプリ220は、例えば関連情報表示画面1102に示されるURL(連携情報)を指定して、指定されたURLを保存部2207により保存することができる。このとき、指定されたURLによるページを例えば画像として取得し、取得された画像を、URLと関連付けてコレクション表示領域1107にサムネイル画像として表示させることができる。コレクション表示領域1107は、画像検索用アプリ220により現在までに保存された画像およびURLが一覧表示される。
コレクション表示領域1107において、サムネイル画像をユーザ操作により指定することで、指定されたサムネイル画像に関連付けられたURLにアクセスすることができる。例えば、指定されたサムネイル画像が商品詳細情報を提示するURLに関連付けられたものであれば、画像検索用アプリ220は、表示装置406の表示を、コンテンツ表示画面1104に切り替える(ステップS40)。同様に、指定されたサムネイル画像が商品購入のためのURLに関連付けられたものであれば、画像検索用アプリ220は、表示装置406の表示を、商品購入画面1105に切り替える(ステップS39)。
関連情報表示画面1102において、戻るボタン1111を操作することで、画像検索用アプリ220から特定アプリが呼び出され、処理が画像検索用アプリ220から特定アプリに移行される。また、表示装置406の表示が特定アプリトップ画面1100に切り替えられる(ステップS41)。
第2の適用例に示されるように、第1の実施形態に係る画像検索用アプリ220は、撮像画像40に基づく画像検索より取得した複数の連携情報から、起動時に特定アプリから渡されるパラメータに応じた連携情報を抽出することができる。そのための特定アプリの動作は、特定アプリから画像検索用アプリ220を呼び出しパラメータを渡すだけであるので、第2の適用例を実現するための機能拡張が容易である。
(第2の実施形態)
次に、第2の実施形態について説明する。図18は、第2の実施形態に係る情報処理システムの一例の構成を示す。なお、図18において、上述した図9と共通する部分には同一の符号を付して、詳細な説明を省略する。
図18に例示されるように、第2の実施形態に係る情報処理システム1’は、ネットワーク上に、第1の実施形態における特定アプリと同等の機能を実現可能な特定サイト240が設けられる。情報処理システム1’において、端末装置20からこの特定サイト240にアクセスする。特定サイト240は、端末装置20において画像検索用アプリ220を呼び出し、起動された画像検索用アプリ220に対してパラメータを渡す。パラメータは、少なくとも、呼び出し元の特定サイト240を示す情報として、特定サイト240のURLが含まれる。
パラメータを渡された画像検索用アプリ220の動作は、上述の第1の実施形態で説明した動作と同様なので、ここでの詳細な説明を省略する。
図19は、第2の実施形態に係る端末装置20の機能を説明するための一例の機能ブロック図である。なお、図19において、上述した図11と共通する部分に同一の符号を付して、詳細な説明を省略する。図19に例示されるように、端末装置20は、図11に示した第2実行部2300を搭載しない代わりに、ブラウザアプリ2400を用いて第1実行部2200を呼び出す。
図20〜図22を用いて、ブラウザアプリ2400から第1実行部2200(画像検索用アプリ220)を起動させる動作について、概略的に説明する。図20は、第2の実施形態に係る端末装置20上における端末用プログラムの構成の例を概略的に示す。なお、図20において、上述した図12と共通する部分には同一の符号を付して、詳細な説明を省略する。
図20において、端末用プログラム2000’は、アプリケーション層2100、API層2101、OS層2102およびハードウェアI/F層2103を含み、アプリケーション層2100がブラウザアプリ2400および第1実行部2200を含んでいる。
図21は、第2の実施形態に係る、ブラウザアプリ2400が特定サイト240のデータを読み込んで第1実行部2200を呼び出す際の動作の流れを概略的に示す。なお、図21は、端末装置20に対し、第1実行部2200を実行させるための第1実行部用プログラムが既にインストールされている場合の動作の例である。
ブラウザアプリ2400は、所定のURLに従い、通信I/F410を介して特定サイト240にアクセスする。このアクセスにより、当該URLに示されるページのデータが、ネットワークを介して通信I/F410に送信される(ステップS20)。このデータは、通信I/F410からハードウェアI/F層2103を介してOSに渡され(ステップS21)、OSからAPI層2101を介してブラウザアプリ2400に渡される(ステップS22)。
ブラウザアプリ2400に特定サイト240のデータが読み込まれると、ブラウザアプリ2400の表示画面に対して、特定サイト240のページによる画面が表示される。この画面には、第1実行部2200を呼び出しパラメータを渡すためのボタンやハイパーリンクが設けられている。
これらボタンやハイパーリンクが操作され、第1実行部2200の呼び出しが指示されると、図21(a)に例示されるように、ブラウザアプリ2400は、OSに対して第1実行部2200の起動を要求する(ステップS23)。OSは、この要求に応じて、例えばストレージ2002にアクセスする(ステップS24)。OSは、図21(b)に例示されるように、第1実行部用プログラムをストレージ2002から読み出して主記憶装置であるRAM404にロードし(ステップS25)、第1実行部2200を起動させる。そして、OSは、例えばアプリの実行権をブラウザアプリ2400から第1実行部2200に移動させる。
図22は、第2の実施形態に係る、第1実行部2200を実行させるための第1実行部用プログラムが端末装置20にインストールされていない場合の、ブラウザアプリ2400が特定サイト240のデータを読み込んで第1実行部2200を呼び出す際の動作の流れを概略的に示す。なお、図22では、上述したステップS20〜ステップS22の動作が既に実行され、ブラウザアプリ2400の表示画面に対して、第1実行部2200を呼び出しパラメータを渡すためのボタンやハイパーリンクが設けられた特定サイト240のページの画像が表示されているものとする。
OSは、ステップS24にてストレージ2002にアクセスした結果、第1実行部用プログラムが端末装置20に未だインストールされていないと判定した場合、通信I/F410を制御して、ネットワークを介して外部から当該第1実行部用プログラムを取得する(ステップS26)。取得された第1実行部用プログラムは、一旦ストレージ2002に格納され、所定の手順にてインストール処理が開始される。第1実行部用プログラムがインストールされると、OSは、上述したステップS25の処理により、第1実行部2200を起動させる。
上述において、ブラウザアプリ2400から第1実行部2200を起動させる際に、ブラウザアプリ2400は、読み込んだ特定サイト240のデータに基づき、第1実行部2200に対してパラメータを渡す。パラメータは、第1実行部2200の呼び出し元を示す情報として、例えば特定サイト240のURLを用いることができる。呼び出し元を示す情報として特定サイト240のURLを用いると、第1実行部2200から戻る際に、ブラウザアプリ2400により特定サイト240がアクセスされることになる。また、パラメータは、画像検索に用いるサーバ名およびDB名を含むことができる。
第1実行部2200すなわち画像検索用アプリ220は、撮像画像40を画像検索システム200Aに送信する際に、第1の実施形態と同様に、渡されたパラメータに含まれる情報を撮像画像40に付加する。これにより、画像検索用アプリ220は、画像検索の結果として特定サイト240に応じた連携情報を取得することができる。また、画像検索用アプリ220が取得した連携情報をブラウザアプリ2400に渡すことで、ブラウザアプリ2400により、特定サイト240に応じたコンテンツ配信サイト210Aやコンテンツ配信サイト210Bにアクセスすることができる。
このように、第2の実施形態によれば、端末装置20を用いて、ネットワーク上のサイトから画像検索用アプリ220を起動させて、撮像画像40に基づく画像検索システム200Aによる画像検索を行い、当該サイトに応じた連携情報を取得することができる。近年においては、Web上にイベント専用のWebサイトを作成することも多く、イベント参加者は、このWebサイトからイベントに参加する機会が増えている。この第2の実施形態を適用することで、Webサイトからイベントに参加する場合でも、当該イベントに応じた連携情報を容易に得ることが可能となる。
上述では、画像検索用アプリ220に渡すパラメータを、特定アプリや、ネットワーク上の特定サイト240であるように説明したが、これはこの例に限定されない。例えば、端末装置20にGPS(Global Positioning System)による信号を受信して測位を行うGPS測位部をさらに儲け、撮像画像40を取得した位置を示す情報をGPS測位部により取得する。この位置情報をパラメータに追加して画像検索用アプリ220に渡してもよい。画像検索用アプリ220は、撮像画像40に基づく画像検索システム200Aによる画像検索により取得した連携情報に示されるURLにアクセスする際に、この位置情報を当該URLのパラメータとして付加して送信する。これにより、連携情報に示されるURLにおいて、位置情報に応じたコンテンツを端末装置20に送信することが可能となる。
また、上述では、特定アプリから画像検索用アプリ220に渡すパラメータに応じて、画像検索に用いる画像検索サーバ11やDB12の指定、画像検索により取得された連携情報の選択、画像検索用アプリ220のスキンやUIの設定を行うように説明したが、これはこの例に限定されない。
例えば、パラメータに応じて画像検索用アプリ220の起動画面を設定してもよい。一例として、画像検索用アプリ220の起動時に、パラメータに応じて、図17の画像検索用アプリ画面1101を表示させるか、カメラ撮像画面を直接的に表示させるかを設定することが考えられる。カメラ撮像画面を直接的に表示させた場合、例えば、撮像の完了直後に特定アプリトップ画面1100に戻ることが考えられる。
また、撮像画像40を得るために撮像する、被写体となる被撮像媒体は、紙媒体に限られない。被撮像媒体は、例えば、電子ペーパーやサイネージといった、電子画像を表示する媒体であってもよい。
また例えば、画像検索で取得される連携情報に対して、パラメータに応じて制限を掛けてもよい。例えば、画像検索用アプリ220は、画像検索で取得される連携情報の種類をパラメータに応じて制限する。さらに例えば、パラメータに応じて、画像検索用アプリ220に適用される言語モードを設定してもよい。言語モードは、一般的には、OSにより設定されるが、これを、パラメータに応じて強制的に変更する。
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。