(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【0014】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
1.システムの概要
2.一実施形態に係る端末装置の構成例
2−1.ハードウェア構成
2−2.論理的な構成
3.一実施形態に係る辞書サーバの構成例
3−1.ハードウェア構成
3−2.論理的な構成
3−3.変形例
4.一実施形態に係る処理の流れ
4−1.端末側の処理
4−2.サーバ側の処理
5.まとめ
【0015】
<1.システムの概要>
図1は、本明細書で開示する技術が適用され得る物体識別システムの概要を示す説明図である。
図1を参照すると、一実施形態に係る物体識別システム1が示されている。物体識別システム1は、端末装置100及び辞書サーバ200を含む。
【0016】
端末装置100は、撮像装置により撮像される画像に映る物体を識別する装置である。端末装置100は、スマートフォン又はPDA(Personal Digital Assistant)などの、ユーザにより携帯される携帯端末であってもよい。また、端末装置100は、PC(Personal Computer)、デジタル家電機器、ゲーム機器又は作業用ロボットなどのその他の種類の装置であってもよい。撮像装置は、端末装置100に内蔵されてもよい。その代わりに、撮像装置は、端末装置100の外部に設けられ、端末装置100と有線又は無線で接続されてもよい。
【0017】
端末装置100は、画像に映る物体を識別するにあたり、画像から抽出される特徴量を1つ以上の物体についての既知の特徴量の集合である特徴量辞書と照合する。そして、端末装置100は、照合によって算出されるスコア(以下、照合スコアという)に基づき、いずれの物体が画像に映っているかを識別する。なお、本明細書において、既知のある物体の特徴量についての照合スコアが「高い」とは、当該物体が入力画像に映っている可能性が高いことを意味する。例えば、ある特定の位置及び姿勢において既知の特徴量と入力画像の特徴量との間の差異がゼロに近ければ、当該入力画像にはその特徴量に対応する物体がその位置及び姿勢で映っている可能性が高い。このような状況を、本明細書では、(差異の評価値自体は小さいものの)照合スコアが「高い」という。即ち、端末装置100は、画像に映っている物体の当該画像内での位置及び姿勢をも識別し得る。このような物体識別の結果を利用する様々なアプリケーションが、端末装置100には搭載され得る。本明細書では、物体識別の結果を利用するARアプリケーションが端末装置100に搭載される例を主に説明する。しかしながら、端末装置100において、他の目的(例えば、監視、環境認識又は作業支援など)を有するアプリケーションが物体識別の結果を利用してもよい。
【0018】
辞書サーバ200は、物体識別のための特徴量辞書を端末装置100に提供する情報処理装置である。辞書サーバ200は、ネットワーク3を介して端末装置100と通信する。ネットワーク3は、インターネット、プロバイダネットワーク又は企業ネットワークなどのいかなる種類のネットワークであってもよい。本実施形態において、辞書サーバ200は、端末装置100から画像を受信する。そして、辞書サーバ200は、受信した画像に映る物体を識別し、その識別結果に応じた特徴量辞書を端末装置100に提供する。
【0019】
図2は、本実施形態において端末装置100の画面上に表示され得る画像について説明するための説明図である。
図2に例示された画像は、ARアプリケーションの画像である。
図2を参照すると、端末装置100の画面上に、実空間に存在する建物10を映した画像が表示されている。また、当該画像には、付加情報12が重畳されている。付加情報12は、建物10において営業されているレストランの名称及びレーティングを示す情報である。このような付加情報は、端末装置100における物体識別の結果に基づいて選択され、画像内の物体の位置に合わせて重畳される。本実施形態では、このように画像に重畳される付加情報のデータベースもまた、辞書サーバ200から端末装置100へ提供される。
【0020】
<2.一実施形態に係る端末装置の構成例>
[2−1.ハードウェア構成]
図3は、本実施形態に係る端末装置100のハードウェア構成の一例を示すブロック図である。
図3を参照すると、端末装置100は、撮像部102、センサ部104、入力部106、記憶部108、表示部112、通信部114、バス118及び制御部120を備える。
【0021】
(撮像部)
撮像部102は、画像を撮像するカメラモジュールである。撮像部102は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を用いて実空間を撮像することにより、物体識別のための入力画像を生成する。
【0022】
(センサ部)
センサ部104は、端末装置100の位置及び姿勢の認識を支援するセンサ群である。例えば、センサ部104は、GPS(Global Positioning System)信号を受信して端末装置100の緯度、経度及び高度を測定するGPSセンサを含んでもよい。また、センサ部104は、無線アクセスポイントから受信される無線信号の強度に基づいて端末装置100の位置を測定する測位センサを含んでもよい。また、センサ部104は、端末装置100の傾き角を測定するジャイロセンサ、3軸加速度を測定する加速度センサ、又は方位を測定する地磁気センサを含んでもよい。なお、端末装置100が画像認識に基づく位置推定機能及び姿勢推定機能を有する場合には、センサ部104は端末装置100の構成から省略されてもよい。
【0023】
(入力部)
入力部106は、ユーザが端末装置100を操作し又は端末装置100へ情報を入力するために使用される入力デバイスである。入力部106は、例えば、キーボード、キーパッド、マウス、ボタン、スイッチ又はタッチパネルなどを含み得る。入力部106は、入力画像に映るユーザのジェスチャを認識するジェスチャ認識モジュールを含んでもよい。また、入力部106は、HMD(Head Mounted Display)を装着したユーザの視線方向をユーザ入力として検出する視線検出モジュールを含んでもよい。
【0024】
(記憶部)
記憶部108は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、端末装置100による処理のためのプログラム及びデータを記憶する。例えば、記憶部108は、撮像部102により生成される入力画像及びセンサ部104により測定されるセンサデータを一時的に記憶する。また、記憶部108は、通信部114を介して辞書サーバ200から受信されるデータを記憶する。辞書サーバ200から受信されるデータの例について、後に詳細に説明する。
【0025】
(表示部)
表示部112は、LCD(Liquid Crystal Display)、OLED(Organic light-Emitting Diode)又はCRT(Cathode Ray Tube)などにより構成される表示モジュールである。表示部112は、例えば、撮像部102により撮像される入力画像、又は物体識別の結果を利用するアプリケーションの画像(例えば、
図2に例示したARアプリケーションの画像)を画面上に表示する。表示部112は、端末装置100の一部であってもよく、又は端末装置100の外部に設けられてもよい。また、表示部112は、ユーザにより装着されるHMDであってもよい。
【0026】
(通信部)
通信部114は、端末装置100による辞書サーバ200との間の通信を仲介する通信インタフェースである。通信部114は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、辞書サーバ200との間の通信接続を確立する。それにより、端末装置100が辞書サーバ200に画像を送信し及び辞書サーバ200から特徴量辞書を受信することが可能となる。
【0027】
(バス)
バス118は、撮像部102、センサ部104、入力部106、記憶部108、表示部112、通信部114及び制御部120を相互に接続する。
【0028】
(制御部)
制御部120は、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)などのプロセッサに相当する。制御部120は、記憶部108又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する端末装置100の様々な機能を動作させる。
【0029】
[2−2.論理的な構成]
図4は、
図3に示した端末装置100の記憶部108及び制御部120により実現される論理的機能の構成の一例を示すブロック図である。
図4を参照すると、端末装置100は、画像取得部130、送信部140、受信部150、辞書キャッシュ160、識別部170、付加情報キャッシュ180及び表示制御部190を含む。
【0030】
(画像取得部)
画像取得部130は、撮像部102により生成される入力画像を取得する。そして、画像取得部130は、取得した入力画像を送信部140及び識別部170へ順次出力する。
【0031】
(送信部)
送信部140は、所定のトリガイベントが検出されると、画像取得部130から入力される入力画像を通信部114を介して辞書サーバ200へ送信する。辞書サーバ200は、上述したように、既知の物体についての画像特徴量の集合である特徴量辞書を保持しているサーバである。
【0032】
送信部140からの入力画像の送信の契機となるトリガイベントは、例えば、次のうち1つ以上のイベントであってよい。
a)周期的なタイミングの到来:nフレームごとに1度又はt秒ごとに1度などの周期で、入力画像が送信される。周期は、典型的には、入力画像の送信の頻度が識別部170による物体の識別の頻度よりも少なくなるように予め設定される。
b)ユーザ指示:入力部106を介するユーザからの明示的な指示に応じて入力画像が送信される。
c)追跡中の物体のフレームアウト:物体識別の結果として識別されていた物体が画像からフレームアウトすると、入力画像が送信される。
d)新たな物体のフレームイン:物体識別の結果として新たな物体が画像内に存在することが検出されると、入力画像が送信される。新たな物体とは、画像内に存在していなかった既知の物体、及び未知の物体を含み得る。既知の物体は、例えば顔認識などの簡易な認識技術を用いて検出されてもよい。また、例えば、現在のフレームと前のフレームとの差分(動き補償が適用された上での差分であってもよい)から動物体が認識され、認識された動物体がどのような物体であるかを識別できない場合には、未知の新たな物体がフレームインしたと判定され得る。このような差分画像に基づく動物体の検出は、例えば、物体識別によって画像内で何らの物体も識別されない場合にのみ行われてもよい。
e)端末装置の移動:端末装置100の位置若しくは向きの変化又は速度の上昇などが検出されると、入力画像が送信される。
周期的な入力画像の送信は、画像の内容に依存することなく継続して物体識別を行うことが望ましい場合に採用され得る。ユーザ指示に応じた入力画像の送信は、例えば、画面に表示されている物体を識別し又は追跡することをユーザが望む場合などに採用され得る。他のトリガイベントは、新たな物体が画像に映る可能性が高いことを想定したイベントであり、これらトリガイベントに応じて入力画像が送信され、特徴量辞書が辞書サーバ200から提供されることで、新たな物体を適切に識別することを可能とする。
【0033】
送信部140は、入力画像と共に、辞書サーバ200による特徴量辞書の取得を補助する補助情報を辞書サーバ200へ送信してもよい。補助情報とは、例えば、入力画像が撮像された際の(端末装置100又は撮像装置の)位置、日付及び時刻、並びに端末装置100のケイパビリティ情報のうち少なくとも1つを含み得る。位置及び日時は、辞書サーバ200において特徴量辞書をフィルタリングする際に使用され得る。端末装置100のケイパビリティ情報は、辞書サーバ200が端末装置100に提供すべき特徴量辞書のデータ量を決定する際に使用され得る。これら補助情報の活用について、後にさらに説明する。
【0034】
(受信部)
受信部150は、送信部140から辞書サーバ200へ入力画像が送信された後、辞書サーバ200において当該入力画像についての物体の識別結果に応じて取得される特徴量辞書を、辞書サーバ200から受信する。受信部150により受信される特徴量辞書は、辞書サーバ200が有している特徴量辞書よりもデータ量の少ない辞書である。端末装置100に提供される特徴量辞書が辞書サーバ200においてどのように取得されるかについて、後にさらに説明する。
【0035】
受信部150は、特徴量辞書を受信すると、受信した特徴量辞書を辞書キャッシュ160に記憶させる。本実施形態において、特徴量辞書に含まれる各特徴量には、物体を一意に識別するための識別子(以下、物体IDという)が関連付けられる。受信部150は、辞書キャッシュ160により記憶されている特徴量と同じ物体IDを有する特徴量を新たに受信した場合には、辞書キャッシュ160の特徴量を新たに受信した特徴量で更新してもよい。また、受信部150は、受信した各特徴量に受信タイムスタンプを付し、受信タイムスタンプから所定の期間が経過した特徴量を、辞書キャッシュ160から自動的に削除してもよい。その代わりに、辞書キャッシュ160からの特徴量の削除は、端末装置100の移動量又は関連付けられている物体の画像からのフレームアウトを契機として行われてもよい。
【0036】
さらに、本実施形態では、受信部150は、辞書サーバ200において物体の識別結果に応じて取得される付加情報データベースを、辞書サーバ200から受信する。受信部150により受信される付加情報データベースは、辞書サーバ200が予め有している付加情報データベースよりもデータ量の少ないデータベースである。受信部150は、受信した付加情報データベースを付加情報キャッシュ180に記憶させる。
【0037】
(辞書キャッシュ)
辞書キャッシュ160は、
図3に示した記憶部108を用いて、受信部150により受信される特徴量辞書を記憶する。辞書キャッシュ160により記憶される特徴量辞書は、識別部170による物体識別の際に参照される。
【0038】
(識別部)
識別部170は、画像取得部130から入力される入力画像の特徴量を抽出し、抽出した特徴量を辞書キャッシュ160により記憶されている特徴量辞書と照合することにより、入力画像に映る物体を識別する。識別部170が用いる特徴量抽出アルゴリズムは、例えば、上記非特許文献2に記載されたRandom Ferns法、又は“SURF: Speeded Up Robust Features”(H.Bay, A.Ess, T.Tuytelaars and L.V.Gool, Computer Vision and Image Understanding(CVIU), Vol.110, No.3, pp.346--359, 2008)に記載されたSURF法などであってよい。これらアルゴリズムは、比較的処理コストが少なく高速に動作し得る、軽量なアルゴリズムである。識別部170による物体識別の結果として、典型的には、入力画像に映る物体の物体ID、並びに当該物体の入力画像内での位置及び姿勢が導かれる。そして、識別部170は、物体識別の結果を表示制御部190へ出力する。
【0039】
(付加情報キャッシュ)
付加情報キャッシュ180は、
図3に示した記憶部108を用いて、受信部150により受信される付加情報データベースを記憶する。次に説明する表示制御部190は、付加情報キャッシュ180により記憶される付加情報データベースから、入力画像に重畳すべき付加情報を選択する。
【0040】
(表示制御部)
表示制御部190は、識別部170により識別される物体と関連する付加情報を付加情報キャッシュ180により記憶されている付加情報データベースから取得し、取得した付加情報を入力画像に重畳することにより、出力画像を生成する。そして、表示制御部190は、生成した出力画像を表示部112へ出力する。
【0041】
入力画像に重畳される付加情報は、いかなる情報であってもよい。例えば、入力画像に重畳される付加情報は、
図2に例示したような、入力画像に映る建物と関連付けられている広告情報及びレーティング情報などであってもよい。付加情報の他の例について、後にさらに説明する。
【0042】
<3.一実施形態に係る辞書サーバの構成例>
[3−1.ハードウェア構成]
図5は、本実施形態に係る辞書サーバ200のハードウェア構成の一例を示すブロック図である。
図5を参照すると、辞書サーバ200は、記憶部208、通信部214、バス218及び制御部220を備える。
【0043】
(記憶部)
記憶部208は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、辞書サーバ200による処理のためのプログラム及びデータを記憶する。記憶部208は、端末装置100の記憶部108と比較して、より豊富な記憶容量を有し得る。記憶部208は、後に説明する特徴量辞書及び付加情報データベースを予め記憶している。
【0044】
(通信部)
通信部214は、辞書サーバ200による端末装置100との間の通信を仲介する通信インタフェースである。通信部214は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、端末装置100との間の通信接続を確立する。それにより、辞書サーバ200が端末装置100から画像を受信し、並びに端末装置100へ特徴量辞書及び付加情報データベースを送信することが可能となる。
【0045】
(バス)
バス218は、記憶部208、通信部214及び制御部220を相互に接続する。
【0046】
(制御部)
制御部220は、CPU又はDSPなどのプロセッサに相当する。制御部220は、端末装置100の制御部120と比較して、より高い演算性能を有し得る。制御部220は、記憶部208又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する辞書サーバ200の様々な機能を動作させる。
【0047】
[3−2.論理的な構成]
図6は、
図5に示した辞書サーバ200の記憶部208及び制御部220により実現される論理的機能の構成の一例を示すブロック図である。
図6を参照すると、辞書サーバ200は、受信部230、第1のアルゴリズム(Arg1)についての特徴量辞書240、第2のアルゴリズム(Arg2)についての特徴量辞書242、識別部250、辞書取得部260、付加情報データベース(DB)270、付加情報取得部280及び送信部290を含む。
【0048】
(受信部)
受信部230は、端末装置100から送信される入力画像を待ち受ける。そして、受信部230は、通信部214を介して入力画像を受信すると、受信した入力画像を識別部250へ出力する。また、受信部230は、上述した補助情報が入力画像と共に受信されると、当該補助情報を識別部250及び辞書取得部260へ出力する。
【0049】
(特徴量辞書)
特徴量辞書(Arg1)240及び特徴量辞書(Arg2)242は、記憶部208により予め記憶されている特徴量の集合である。特徴量辞書(Arg1)240の各特徴量は、既知の物体画像から第1のアルゴリズムに従って抽出される。特徴量辞書(Arg2)242の各特徴量は、同様の既知の物体画像から第2のアルゴリズムに従って抽出される。典型的には、第1のアルゴリズムは、第2のアルゴリズムと比較してより精度の高い物体識別を可能とする特徴量抽出アルゴリズムである。一方、第2のアルゴリズムは、第1のアルゴリズムと比較してより高速に実行可能な特徴量抽出アルゴリズムである。第1のアルゴリズムは、例えば、上記特許文献1に記載された特徴量抽出アルゴリズムであってよい。その代わりに、第1のアルゴリズムは、“Shape Matching and Object Recognition Using Shape Contexts”(S.Belongie, J.Malik, and J.Puzicha, IEEE Trans. Pattern Analysis and Machine Intelligence, vol.2, no.4, pp.509--522, April 2002)に記載されたアルゴリズム、又は“Distinctive image features from scale-invariant keypoints”(D.G.Lowe, Internal Journal of Computer Vision, 60, 2, pp.91--110, January 2004)に記載されたアルゴリズムなどであってもよい。第2のアルゴリズムは、上述した端末装置100の識別部170による物体の識別の際にも用いられる特徴量抽出アルゴリズム(例えば、Random Ferns法又はSURF法など)である。以下の説明では、第1のアルゴリズムを高精度アルゴリズム、第2のアルゴリズムを軽量アルゴリズムという。
【0050】
特徴量辞書(Arg1)240の特徴量と特徴量辞書(Arg2)242の特徴量とは、共通する物体IDを用いてリンク付けされる。即ち、同じ物体IDについての特徴量が、特徴量辞書(Arg1)240及び特徴量辞書(Arg2)242の双方に含まれる。
【0051】
図7は、辞書サーバ200により記憶される特徴量辞書の一例について説明するための説明図である。
図7を参照すると、特徴量辞書(Arg1)240は、8個の物体B
1〜B
8を含む複数の物体の各々についての、既知の物体画像から高精度アルゴリズムに従って予め抽出された特徴量を含む。各物体には、それぞれ名称が付与されている。特徴量辞書(Arg2)242は、同じく8個の物体B
1〜B
8を含む複数の物体の各々についての、軽量アルゴリズムに従って予め抽出された特徴量を含む。各物体の物体IDは、これら2つの特徴量辞書の間で共通である。即ち、例えば特徴量辞書242の物体B
1についての特徴量は、特徴量辞書240の物体B
1についての特徴量と同じく、建物Aの画像から抽出された特徴量である。
【0052】
図7の例に限定されず、特徴量辞書240及び242は、追加的なデータを含んでもよい。後に説明するいくつかの例において、特徴量辞書240は、端末装置100に提供すべき特徴量辞書の効率的な取得を支援するための追加的なデータを含む。但し、特徴量辞書240の代わりに(又は特徴量辞書240に加えて)特徴量辞書242が、そうした追加的なデータを含んでもよい。
【0053】
(識別部)
識別部250は、受信部230により受信される入力画像の特徴量を高精度アルゴリズムに従って抽出し、抽出した特徴量を特徴量辞書(Arg1)240と照合することにより、入力画像に映る1つ以上の物体を識別する。そして、識別部250は、識別した物体の物体IDと照合スコアとを、辞書取得部260及び付加情報取得部280へ出力する。
【0054】
(辞書取得部)
辞書取得部260は、識別部250による識別結果に応じて、端末装置100へ提供すべき特徴量辞書を取得する。辞書取得部260により取得される特徴量辞書は、上述した特徴量辞書(Arg1)240及び特徴量辞書(Arg2)242よりもデータ量の少ない、特徴量辞書(Arg2)242のサブセットである。以下、辞書取得部260による辞書のサブセットの取得の4つの例について、
図8〜
図11を用いて説明する。
【0055】
(1)第1の例
図8は、辞書取得部260により取得される辞書のサブセットの第1の例について説明するための説明図である。
図8を参照すると、識別部250による識別結果として得られる照合スコアのランク(順位)が、特徴量辞書(Arg1)240の物体IDごとに示されている。
図8の例では、物体B
1の照合スコアが最も高く、ランクは第1位である。物体B
2の照合スコアは次に高く、ランクは第2位である。物体B
6の照合スコアのランクは、第k位である。辞書取得部260は、例えば、このような照合スコアの上位k個の物体についての特徴量を特徴量辞書(Arg2)242から取得する。そして、辞書取得部260は、取得した特徴量を含む特徴量辞書のサブセット242aを、端末装置100へ提供すべき特徴量辞書として送信部290へ出力する。
【0056】
なお、特徴量辞書のサブセット242aに含めるべきデータ量(例えば、特徴量の数k)は、端末装置100から補助情報として受信される端末装置100のケイパビリティ情報に応じて、動的に決定されてもよい。端末装置100のケイパビリティは、例えば、処理可能なデータ件数、プロセッサのコア数又はメモリ容量などにより表現され得る。
【0057】
(2)第2の例
図9は、辞書取得部260により取得される辞書のサブセットの第2の例について説明するための説明図である。第2の例では、特徴量辞書(Arg1)240は、各物体について、「物体ID」、「名称」及び「特徴量」に加えて、予め定義される「共起物体」というデータを有する。「共起物体」は、各物体と共起する可能性が高い物体のリストを表す。本明細書において、第1の物体の近傍に第2の物体が存在することを、第1の物体と第2の物体とが「共起する」という。
図9の例では、物体B
4の共起物体は、物体B
5及び物体B
9である。これは、入力画像に物体B
4(信号機D)が映っていると識別された場合に、後に続く入力画像に物体B
5(自動車E)又は物体B
9(標識I)が映る可能性が高いことを意味する。辞書取得部260は、このようなデータを用いて、入力画像に既に映っている物体についての特徴量のみならず、後に続く入力画像に映ると予測される物体についての特徴量を取得し得る。
図9の例では、辞書取得部260は、照合スコアが上位であった物体B
4についての特徴量に加えて、後に続く入力画像に映ると予測される物体B
5及び物体B
9についての特徴量を特徴量辞書(Arg2)242から取得している。そして、辞書取得部260は、取得した特徴量を含む特徴量辞書のサブセット242bを送信部290へ出力する。
【0058】
(3)第3の例
図10は、辞書取得部260により取得される辞書のサブセットの第3の例について説明するための説明図である。第3の例においても、辞書取得部260は、入力画像に既に映っている物体についての特徴量のみならず、後に続く入力画像に映ると予測される物体についての特徴量を取得する。但し、第3の例では、後に続く入力画像に映ると予測される物体とは、入力画像に既に映っている物体の近傍に位置することが位置データから判定される物体である。
図10を参照すると、特徴量辞書(Arg1)240は、各物体についての位置データ(緯度及び経度、又はその他の座標データ)を有する。例えば、物体B
1の位置はX
1、物体B
2の位置はX
2、物体B
3の位置はX
3である。このうち、位置X
1と位置X
2との間の距離は閾値Dよりも小さいものとする。辞書取得部260は、物体B
1の照合スコアが上位であった場合に、このような位置データに基づいて、物体B
1についての特徴量に加えて、物体B
1の近傍に位置する物体B
2についての特徴量を特徴量辞書(Arg2)242から取得する。そして、辞書取得部260は、取得した特徴量を含む特徴量辞書のサブセット242cを送信部290へ出力する。
【0059】
なお、
図10に例示した位置データは、特徴量辞書のフィルタリングのために使用されてもよい。例えば、辞書取得部260は、照合スコアの上位k個の物体のうち端末装置100の近傍に位置する物体についての特徴量のみを取得してもよい。また、識別部250は、端末装置100の近傍に位置する物体についての特徴量のみを、入力画像から抽出される特徴量との照合の対象としてもよい。端末装置100の位置は、端末装置100から受信される補助情報から認識され得る。
【0060】
(4)第4の例
図11は、辞書取得部260により取得される辞書のサブセットの第4の例について説明するための説明図である。
図11を参照すると、特徴量辞書(Arg1)240は、各物体について、「物体ID」、「名称」及び「特徴量」に加えて、「照明条件」というデータを有する。「照明条件」は、例えば、既知の物体画像が撮像された際の照明条件を表す区分であってよい。照明条件は、例えば、撮像された時間帯もしくは撮像された季節などのような時間に関する条件、又は天候に関する条件によって互いに区別される。特徴量辞書(Arg1)240は、このような照明条件が互いに異なる状況において同じ物体をそれぞれ撮像した画像から抽出される、複数の種類の特徴量を含み得る。
図11の例では、物体B
2について、照明条件L1(例えば、“朝”又は“晴れ”)に対応する特徴量、照明条件L2(例えば、“昼”又は“曇り”)に対応する特徴量、及び照明条件L3(例えば、“夕方”又は“雨”)に対応する特徴量が特徴量辞書(Arg1)240に含まれている。物体B
3についても同様に、照明条件L1、L2及びL3に対応する特徴量が特徴量辞書(Arg1)240に含まれている。このように、撮像された際の照明条件が互いに異なる同じ物体についての複数の特徴量を特徴量辞書(Arg1)240が含んでいることで、識別部250による物体の識別が、照明条件の違いに起因する物体の見え方の違いの影響を受けにくくなる。
図11の例では、例えば物体B
2が映っている入力画像が受信された場合に、入力画像の特徴量と照明条件L1及びL2に対応する特徴量との照合スコアは低いものの、照明条件L3に対応する特徴量との照合スコアが高いために、物体B
2についての特徴量が適切に特徴量辞書のサブセット242dに含まれている。
【0061】
なお、
図11に例示した照明条件データもまた、特徴量辞書のフィルタリングのために使用されてよい。例えば、辞書取得部260は、照合スコアの上位k個の物体の特徴量のうち、入力画像が撮像された際の日時の属する照明条件とは異なる照明条件に対応する特徴量を、特徴量のサブセット242dから除外してもよい。また、識別部250は、当該日時の属する照明条件に対応する特徴量のみを、入力画像から抽出される特徴量との照合の対象としてもよい。入力画像が撮像された際の日時は、端末装置100から受信される補助情報から認識され得る。
【0062】
(付加情報DB)
付加情報DB270は、実空間に存在する物体と関連付けられる付加情報の集合である。ARの分野では、付加情報は、アノテーションとも呼ばれる。
図12は、付加情報DBにより記憶されるデータの一例について説明するための説明図である。
図12を参照すると、付加情報DB270において、「種別」及び「内容」という2つのデータ項目を含む付加情報が、各物体の物体IDと関連付けられている。「種別」は、個々の付加情報の種類を表す。「内容」は、個々の付加情報の実体としてのテキストデータ、図形データ又は画像データなどであってよい。
図12の例では、物体B
1に広告情報及びレーティング情報が関連付けられている。また、物体B
2、B
4及びB
5にそれぞれ広告情報、注意喚起情報及び車種情報が関連付けられている。
【0063】
(付加情報取得部)
付加情報取得部280は、識別部250による識別結果に応じて端末装置100へ提供すべき付加情報を付加情報DB270から取得し、データ量のより少ない付加情報データベースのサブセットを生成する。そして、付加情報取得部280は、生成した付加情報データベースのサブセットを送信部290へ出力する。付加情報取得部280は、典型的には、辞書取得部260により取得される特徴量辞書のサブセットと物体IDが共通する付加情報の集合を、付加情報DB270から取得する。即ち、付加情報取得部280もまた、照合スコアの上位k個の物体に対応する付加情報の集合を付加情報DB270から取得してもよい。また、付加情報取得部280は、後に続く入力画像に映ると予測される物体に対応する付加情報を、付加情報DB270からさらに取得してもよい。
【0064】
(送信部)
送信部290は、通信部214を介して、辞書取得部260により取得される特徴量辞書のサブセットを端末装置100へ送信する。その際、送信部290は、識別された物体が過去に識別された物体とは異なる新たな物体を含むか否かを判定し、新たな物体が識別された場合にのみ、当該新たな物体についての特徴量辞書のサブセットを端末装置100へ送信してもよい。それにより、入力画像に同じ物体が継続して映っている場合に、冗長的な特徴量辞書の送信が省略され、トラフィックの負荷が軽減される。また、送信部290は、付加情報取得部280により生成される付加情報データベースのサブセットを端末装置100へ送信する。付加情報データベースのサブセットもまた、新たな物体が識別された場合にのみ送信されてよい。
【0065】
[3−3.変形例]
次に、辞書サーバ200の2つの変形例を説明する。
【0066】
(1)第1の変形例
図13は、第1の変形例に係る辞書サーバ200の論理的機能の構成の一例を示すブロック図である。
図13を参照すると、辞書サーバ200は、受信部232、高精度アルゴリズム(Arg1)についての特徴量辞書240、軽量アルゴリズム(Arg2)についての特徴量辞書242、識別部252、辞書取得部262、付加情報DB270、付加情報取得部280及び送信部290を含む。
【0067】
受信部232は、端末装置100から送信される入力画像を待ち受ける。そして、受信部232は、通信部214を介して入力画像を受信すると、受信した入力画像を識別部252及び辞書取得部262へ出力する。
【0068】
識別部252は、受信部232により受信される入力画像の特徴量を高精度アルゴリズムに従って抽出し、抽出した特徴量を特徴量辞書(Arg1)240と照合することにより、入力画像に映る1つ以上の物体を識別する。また、識別部252は、入力画像に映る物体の位置及び姿勢を識別する。そして、識別部252は、識別した物体の物体ID、位置及び姿勢を辞書取得部262へ出力する。また、識別部252は、識別した物体の物体IDを付加情報取得部280へ出力する。
【0069】
辞書取得部262は、識別部252による識別結果に応じて、端末装置100へ提供すべき特徴量辞書を生成する。より具体的には、辞書取得部262は、まず、識別部252により識別された物体の入力画像内での位置を認識し、各物体が映っている領域の部分画像を入力画像から切り出す。そして、辞書取得部262は、切り出した部分画像から軽量アルゴリズムに従って特徴量を抽出する。辞書取得部262は、このように抽出した各物体の特徴量に識別部252から入力された物体IDを関連付けて、軽量アルゴリズムについての特徴量辞書を生成する。この場合、辞書サーバ200の構成から、軽量アルゴリズム(Arg2)についての特徴量辞書242は省略されてよい。その代わりに、辞書取得部262は、部分画像から抽出される特徴量(即ち、追加学習される特徴量)を、特徴量辞書242から取得される特徴量のサブセットに追加することにより、新たな特徴量辞書を生成してもよい。辞書取得部262は、このように生成される特徴量辞書を送信部290へ出力し、当該特徴量辞書を送信部290から端末装置100へ送信させる。
【0070】
また、辞書取得部262は、軽量アルゴリズムに従って抽出した特徴量から、色、明るさ又はボケの程度などのパラメータを変化させた特徴量のバリエーションをさらに生成してもよい。これら特徴量のバリエーションもまた、新たな特徴量辞書を構成し得る。
【0071】
図14及び
図15は、第1の変形例における辞書取得部262による特徴量辞書の生成について説明するための説明図である。
図14を参照すると、入力画像Im1に映る物体B
1及びB
4が、特徴量辞書240及び高精度アルゴリズムを用いて識別されている。すると、辞書取得部262は、
図15に示したように、入力画像Im1から物体B
1が映る部分画像A1及び物体B
4が映る部分画像A2を切り出す。そして、辞書取得部262は、軽量アルゴリズムに従って部分画像A1及び部分画像A2からそれぞれ特徴量を抽出する。また、辞書取得部262は、抽出した特徴量から、色又は明るさなどのパラメータの異なる特徴量のバリエーションを生成する。そして、辞書取得部262は、各特徴量に物体IDを付すことにより、端末装置100へ提供される新たな特徴量辞書242dを形成する。
【0072】
第1の変形例によれば、辞書サーバ200により入力画像から動的に生成される特徴量辞書が端末装置100へ提供される。かかる特徴量辞書は、端末装置100が存在する環境(撮像環境又は照明環境など)に特に適合した特徴量を含む、データ量の少ない特徴量辞書である。そのため、端末装置100は、その後の入力画像から、高精度かつ少ない処理コストで、入力画像に映る物体並びに当該物体の位置及び姿勢を識別することができる。
【0073】
(2)第2の変形例
ここまでに説明した例では、軽量アルゴリズムのための特徴量辞書のサブセットが辞書サーバ200から端末装置100へ提供される。しかしながら、本項で説明する第2の変形例のように、辞書サーバ200は、高精度アルゴリズムのための特徴量辞書のサブセットを端末装置100へ提供してもよい。
【0074】
図16は、第2の変形例に係る辞書サーバ200の論理的機能の構成の一例を示すブロック図である。
図16を参照すると、辞書サーバ200は、受信部230、高精度アルゴリズム(Arg1)についての特徴量辞書240、識別部250、辞書取得部264、付加情報DB270、付加情報取得部280及び送信部290を含む。
【0075】
辞書取得部264は、識別部250による識別結果に応じて、端末装置100へ提供すべき特徴量辞書のサブセットを特徴量辞書(Arg1)240から取得する。例えば、
図17には、識別部250による識別結果として得られる照合スコアのランクが再び示されている。
図17の例では、物体B
1の照合スコアのランクは第1位、物体B
2の照合スコアのランクは第2位、物体B
6の照合スコアのランクは第k位である。辞書取得部264は、例えば、このような照合スコアの上位k個の物体についての特徴量を特徴量辞書(Arg1)240から取得し、取得した特徴量を含む特徴量辞書のサブセット240aを形成する。そして、送信部290は、特徴量辞書のサブセット240aを端末装置100へ送信する。
【0076】
第2の変形例が適用される場合、端末装置100の識別部170は、高精度アルゴリズムに従って入力画像から特徴量を抽出し、抽出した特徴量を辞書サーバ200から提供される特徴量辞書のサブセットと照合する。この場合、軽量アルゴリズムを使用する例と比較して、特徴量の抽出に要する端末装置100の処理コストは多くなる。しかし、辞書キャッシュ160には、辞書サーバ200の特徴量辞書の全体ではなく、そのサブセットのみが記憶される。そのため、端末装置100が特徴量辞書の全体を有する場合と比較すれば、端末装置100における特徴量の照合の処理コスト及び消費されるメモリリソースは、格段に少なくて済む。
【0077】
なお、ここでは端末装置100の送信部140が辞書サーバ200へ入力画像を送信する例について主に説明した。しかしながら、端末装置100の送信部140は、入力画像を送信する代わりに、識別部170により入力画像から抽出される特徴量を辞書サーバ200へ送信してもよい。その場合、辞書サーバ200の識別部250は、受信部230により受信される入力画像の特徴量を特徴量辞書(Arg1)240と照合し得る
【0078】
<4.一実施形態に係る処理の流れ>
[4−1.端末側の処理]
図18は、本実施形態に係る端末装置100による処理の流れの一例を示すフローチャートである。
【0079】
図18を参照すると、まず、端末装置100の画像取得部130は、入力画像を取得する(ステップS102)。次に、送信部140は、上述した所定のトリガイベント(例えば、周期的なタイミングの到来又はユーザ指示など)が検出されたか否かを判定する(ステップS104)。ここで、トリガイベントが検出されていなければ、その後のステップS106〜S110の処理はスキップされる。一方、トリガイベントが検出されると、送信部140は、入力画像(及び必要に応じて補助情報)を辞書サーバ200へ送信する(ステップS106)。そして、受信部150は、辞書サーバ200から特徴量辞書を受信する(ステップS108)。ここで受信される特徴量辞書は、辞書キャッシュ160により記憶される。また、受信部150は、辞書サーバ200から付加情報DBを受信する(ステップS110)。ここで受信される付加情報DBは、付加情報キャッシュ180により記憶される。次に、識別部170は、辞書キャッシュ160内の特徴量辞書を用いて、入力画像に映る物体を識別する(ステップS112)。次に、表示制御部190は、識別部170により識別された物体と関連する付加情報を付加情報キャッシュ180から取得し、取得した付加情報を入力画像に重畳することにより、出力画像を生成する(ステップS114)。付加情報の入力画像内での位置及び姿勢は、例えば、識別部170による識別される物体の位置及び姿勢に合わせて調整され得る。そして、表示制御部190は、生成した出力画像を表示部112により表示させる(ステップS116)。
【0080】
このような処理が、画像取得部130により取得される一連の入力画像の各々について繰り返される。
【0081】
[4−2.サーバ側の処理]
図19は、本実施形態に係る辞書サーバ200による処理の流れの一例を示すフローチャートである。
【0082】
図19を参照すると、まず、辞書サーバ200の受信部230は、端末装置100からの入力画像の受信を待ち受けている(ステップS202)。そして、受信部230により入力画像が受信されると、識別部250は、高精度アルゴリズムに従って入力画像から特徴量を抽出する(ステップS204)。次に、識別部250は、抽出した入力画像の特徴量を特徴量辞書(Arg1)240内の各特徴量と照合し、入力画像に映る物体を識別する(ステップS206)。ここで、以前に受信された入力画像において識別された物体とは異なる新たな物体が識別された場合には、処理はステップS210へ進む(ステップS208)。一方、新たな物体が識別されなかった場合には、その後のステップS210〜S214の処理はスキップされてよい。識別部250により新たな物体が識別されると、その識別結果に応じて、特徴量辞書のサブセットが取得される(又はデータ量の少ない新たな特徴量辞書が生成される)(ステップS210)。次に、付加情報取得部280は、識別部250による物体の識別結果に応じて、付加情報DBのサブセットを付加情報DB270から取得する(ステップS212)。次に、送信部290は、特徴量辞書のサブセット及び付加情報DBのサブセットを、端末装置100へ送信する(ステップS214)。
【0083】
このような処理により辞書サーバ200から端末装置100へ提供される特徴量辞書及び付加情報DBが、端末装置100における物体識別のために利用される。
【0084】
<5.まとめ>
ここまで、
図1〜
図19を用いて、本明細書で開示する技術の一実施形態及び2つの変形例について詳細に説明した。上述した実施形態によれば、端末装置100における入力画像からの物体の識別のために利用される特徴量辞書が、より豊富な特徴量を含む特徴量辞書を予め記憶している辞書サーバ200から端末装置100へ提供される。端末装置100へ提供される特徴量辞書は、辞書サーバ200において入力画像からの物体の識別結果に応じて取得される辞書である。従って、処理リソースの少ない端末装置100が予め膨大な特徴量辞書を有していなくとも、端末装置100は、自らが置かれている状況にふさわしい特徴量辞書を用いてより高い精度で物体を識別することができる。
【0085】
また、本実施形態によれば、辞書サーバ200においては高精度な特徴量抽出アルゴリズムを用いて物体が識別され、端末装置100においては軽量な特徴量抽出アルゴリズムを用い物体が識別され得る。従って、処理リソースの少ない端末装置100においても、ARアプリケーションなどのリアルタイム性が求められる物体識別を伴うアプリケーションを、高い精度で高速に動作させることができる。
【0086】
また、本実施形態によれば、ARアプリケーションにおいて画像に重畳され得る付加情報のデータベースが辞書サーバ200により予め記憶され、そのサブセットが端末装置100へ提供される。辞書サーバ200から端末装置100へ提供される付加情報もまた、辞書サーバ200における入力画像からの物体の識別結果に応じて取得される。従って、端末装置100において付加情報を記憶し及び処理するためのリソースも節約される。
【0087】
また、本実施形態によれば、辞書サーバ200から端末装置100へ提供される特徴量辞書は、最新の入力画像に映っている物体についての特徴量のみならず、後に続く入力画像に映ると予測される物体についての特徴量を含む。従って、端末装置100では、辞書サーバ200から一度提供された特徴量辞書をある程度の期間にわたって使用し続けることができる。それにより、特徴量辞書が一度提供されると、その後の端末装置100での物体識別においてデータの受信待ちが生じないため、端末装置100で動作するアプリケーションのリアルタイム性が向上する。また、端末装置100は入力画像を毎フレーム辞書サーバ200へ送信しなくてもよいため、トラフィックの負荷も軽減される。
【0088】
また、第1の変形例によれば、入力画像の部分画像を用いて辞書サーバ200において生成される新たな特徴量が、端末装置100に提供される。この場合には、標準的な環境で予め用意される特徴量辞書のサブセットが提供される場合と比較して、端末装置100が存在する環境(撮像環境又は照明環境など)に特に適合した特徴量辞書を端末装置100が使用することが可能となる。また、第2の変形例においても、端末装置100における特徴量の照合の処理コスト及び消費されるメモリリソースを低減することができる。
【0089】
なお、上述した物体識別技術は、AR又は他の目的のアプリケーションのみならず、例えば、SLAM(Simultaneous Localization and Mapping)技術による端末装置100の位置及び姿勢の推定の際の座標系の初期化又は校正のために使用されてもよい。SLAM技術については、“Real-Time Simultaneous Localization and Mapping with a Single Camera”(A.J.Davison,Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2, 2003, pp.1403-1410)を参照されたい。
【0090】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。