(57)【要約】【課題】重複領域の少ない又は存在しない複数の撮影画像から１枚のパノラマ画像を高速に生成することができる画像生成システム等を提供する。【解決手段】端末は、撮影画像を記憶するバッファフレーム記憶手段と、各撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、撮影画像間を対応付けるカメラ姿勢を、バッファフレーム記憶手段に記憶するフレーム間関係計算手段と、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢とを、サーバへ送信するフレーム送信手段とを有する。サーバは、端末から受信した複数の撮影画像から、カメラ姿勢によって変換したパノラマ画像を生成するパノラマ画像生成手段を有する。【選択図】図２
2016005263.tif 000002
【特許請求の範囲】
【請求項１】
端末によって撮影された複数の撮影画像から、サーバによって１枚のパノラマ画像を生成する画像生成システムにおいて、
前記端末は、
前記撮影画像を逐次に入力して記憶するバッファフレーム記憶手段と、
複数の撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、
前記点対応計算手段及び前記カメラ姿勢計算手段を用いて、撮影画像間を対応付けるカメラ姿勢を、前記バッファフレーム記憶手段に記憶するフレーム間関係計算手段と、
前記バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、前記サーバへ送信するフレーム送信手段と
を有し、
前記サーバは、前記端末から受信した複数の撮影画像から、前記カメラ姿勢によって変換したパノラマ画像を生成するパノラマ画像生成手段を有する
ことを特徴とする画像生成システム。
【請求項２】
前記端末の前記フレーム間関係計算手段は、撮影画像（ノード）間と、それに対応付けたカメラ姿勢（エッジ）とで表現された有向グラフを、前記バッファフレーム記憶手段に記憶する
ことを特徴とする請求項１に記載の画像生成システム。
【請求項３】
前記端末の前記フレーム間関係計算手段は、前記バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像について、有向グラフで表現された各撮影画像間における最短経路を探索し、その最短経路の複数の射影変換行列の積をカメラ姿勢として算出する
ことを特徴とする請求項２に記載の画像生成システム。
【請求項４】
前記端末の前記フレーム間関係計算手段は、前記バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく過去に送信された撮影画像について、有向グラフで表現された撮影画像間の最短経路を再探索し、その最短経路の複数の射影変換行列の積をカメラ姿勢として算出する
ことを特徴とする請求項２又は３に記載の画像生成システム。
【請求項５】
前記端末の前記フレーム間関係計算手段は、前記カメラ姿勢計算手段を用いて、各撮影画像間の点対応に基づきカメラ姿勢を再計算し、有向グラフを再構築するように前記バッファフレーム記憶手段を制御する
ことを特徴とする請求項２から４のいずれか１項に記載の画像生成システム。
【請求項６】
前記端末は、前記点対応計算手段に入力される撮影画像に対して、ダウンサンプリングによって１枚の撮影画像の解像度を低減させるべく変換するダウンサンプリング手段を更に有する
ことを特徴とする請求項１から５のいずれか１項に記載の画像生成システム。
【請求項７】
前記端末の前記フレーム間関係計算手段は、バッファフレーム間の画像領域の重複度を計算し、その重複度が所定閾値以下となるフレームのみをバッファするように前記バッファフレーム記憶手段を制御する
ことを特徴とする請求項１から６のいずれか１項に記載の画像生成システム。
【請求項８】
前記端末の前記フレーム間関係計算手段は、前記バッファフレーム記憶手段を用いて、
入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できない場合、入力フレームと他の複数のバッファフレームとの間で、点対応及びカメラ姿勢を計算し、
入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できる場合、入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を計算する
ことを特徴とする請求項１から７のいずれか１項に記載の画像生成システム。
【請求項９】
撮影された複数の撮影画像を、パノラマ画像を生成するサーバへ送信する端末において、
前記撮影画像を逐次に入力して記憶するバッファフレーム記憶手段と、
複数の撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、
前記点対応計算手段及び前記カメラ姿勢計算手段を用いて、撮影画像間を対応付けるカメラ姿勢を、前記バッファフレーム記憶手段に記憶させるフレーム間関係計算手段と、
前記バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、前記サーバへ送信するフレーム送信手段と
を有することを特徴とする端末。
【請求項１０】
撮影された複数の撮影画像を、パノラマ画像を生成するサーバへ送信する端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記撮影画像を逐次に入力して記憶するバッファフレーム記憶手段と、
複数の撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、
前記点対応計算手段及び前記カメラ姿勢計算手段を用いて、撮影画像間を対応付けるカメラ姿勢を、前記バッファフレーム記憶手段に記憶させるフレーム間関係計算手段と、
前記バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、前記サーバへ送信するフレーム送信手段と
してコンピュータを機能させることを特徴とする端末用のプログラム。
【請求項１１】
端末によって撮影された複数の撮影画像から、サーバによって１枚のパノラマ画像を生成する画像生成方法において、
前記端末は、
前記撮影画像を逐次に入力して記憶する第１のステップと、
複数の撮影画像について画像間の特徴点の点対応を計算する第２のステップと、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算する第３のステップと、
第２のステップ及び第３のステップを繰り返し、撮影画像間を対応付けるカメラ姿勢を記憶する第４のステップと、
パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、前記サーバへ送信する第５のステップと
を有し、
前記サーバは、前記端末から受信した複数の撮影画像から、前記カメラ姿勢によって変換したパノラマ画像を生成する
ことを特徴とする画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる視点で撮影された複数の撮影画像から、１枚のパノラマ画像を生成する技術に関する。
【背景技術】
【０００２】
パノラマ画像を生成するために、一般に「Image Stitching」と称される技術がある。この技術によれば、互いに重複する領域のある複数の撮影画像を入力とし、それら撮影画像のカメラの移動量を算出し、その移動量に基づいて１つの座標系上に合成する。具体的には、ブリティッシュ・コロンビア大学によって公開されたアプリケーション「AutoStich」がある（例えば非特許文献１及び２参照）。これによって、撮影対象が１つの視点からの撮影画像に収まらないような広範囲であっても、１枚のパノラマ画像を生成することができる。例えば５秒間程度、カメラを動かしながら連写撮影することによって、その時間範囲で撮影された複数の撮影画像を、１枚のパノラマ画像として生成することができる。
【０００３】
また、端末で撮影した撮影画像をネットワークを介してクラウドサーバへ送信し、そのサーバでスティッチング処理を実行し、そのサーバで生成されたパノラマ画像を端末へ返信する技術もある（例えば特許文献１参照）。スティッチング処理は、高い計算コストを要する画像処理であるために、サーバ側で実行することは有効である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４―１７７７６号公報
【非特許文献】
【０００５】
【非特許文献１】「AutoStitch: a new dimension in automatic image stitching」、[online]、［平成２６年５月２２日検索］、インターネット＜http://www.cs.bath.ac.uk/brown/autostitch/autostitch.html＞
【非特許文献２】「コンピュータビジョンのセカイ - 今そこにあるミライ」、[online]、［平成２６年５月２２日検索］、インターネット＜http://news.mynavi.jp/series/computer_vision/027/＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術によれば、撮影画像が高解像度である場合や、ネットワークの伝送経路が輻輳している場合に、撮影画像の送信フレームレートが低下することが考えられる。結果として、撮影時のカメラの移動距離が長くなり、撮影画像間の重複領域が小さくなる。
【０００７】
図１は、従来技術についてパノラマ画像の生成が困難な場合を表す説明図である。
【０００８】
特許文献１に記載の従来技術によれば、高速にパノラマ画像を生成できる一方で、複数の撮影画像について互いに重複領域が小さい場合や、その領域が存在しない場合、フレーム間対応の計算ができず、パノラマ画像を生成することができない。逆に、端末のみで処理を行う場合は、認識対象をリアルタイムに追跡することで、離散的に撮影された画像間の重複領域が少ない場合でも、パノラマ画像を生成することができる一方で、多大な計算時間を要する。
【０００９】
そこで、本発明は、重複領域の少ない又は存在しない複数の撮影画像から１枚のパノラマ画像を高速に生成することができる画像生成システム、端末、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によれば、端末によって撮影された複数の撮影画像から、サーバによって１枚のパノラマ画像を生成する画像生成システムにおいて、
端末は、
撮影画像を逐次に入力して記憶するバッファフレーム記憶手段と、
複数の撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、
点対応計算手段及びカメラ姿勢計算手段を用いて、撮影画像間を対応付けるカメラ姿勢を、バッファフレーム記憶手段に記憶するフレーム間関係計算手段と、
バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、サーバへ送信するフレーム送信手段と
を有し、
サーバは、端末から受信した複数の撮影画像から、カメラ姿勢によって変換したパノラマ画像を生成するパノラマ画像生成手段を有する
ことを特徴とする。
【００１１】
本発明の画像生成システムにおける他の実施形態によれば、
端末のフレーム間関係計算手段は、撮影画像（ノード）間と、それに対応付けたカメラ姿勢（エッジ）とで表現された有向グラフを、バッファフレーム記憶手段に記憶することも好ましい。
【００１２】
本発明の画像生成システムにおける他の実施形態によれば、
端末のフレーム間関係計算手段は、バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像について、有向グラフで表現された各撮影画像間における最短経路を探索し、その最短経路の複数の射影変換行列の積をカメラ姿勢として算出することも好ましい。
【００１３】
本発明の画像生成システムにおける他の実施形態によれば、
端末のフレーム間関係計算手段は、バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく過去に送信された撮影画像について、有向グラフで表現された撮影画像間の最短経路を再探索し、その最短経路の複数の射影変換行列の積をカメラ姿勢として算出することも好ましい。
【００１４】
本発明の画像生成システムにおける他の実施形態によれば、
端末のフレーム間関係計算手段は、カメラ姿勢計算手段を用いて、各撮影画像間の点対応に基づきカメラ姿勢を再計算し、有向グラフを再構築するようにバッファフレーム記憶手段を制御することも好ましい。
【００１５】
本発明の画像生成システムにおける他の実施形態によれば、
端末は、点対応計算手段に入力される撮影画像に対して、ダウンサンプリングによって１枚の撮影画像の解像度を低減させるべく変換するダウンサンプリング手段を更に有することも好ましい。
【００１６】
本発明の画像生成システムにおける他の実施形態によれば、
端末のフレーム間関係計算手段は、バッファフレーム間の画像領域の重複度を計算し、その重複度が所定閾値以下となるフレームのみをバッファするようにバッファフレーム記憶手段を制御することも好ましい。
【００１７】
本発明の画像生成システムにおける他の実施形態によれば、
端末のフレーム間関係計算手段は、バッファフレーム記憶手段を用いて、
入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できない場合、入力フレームと他の複数のバッファフレームとの間で、点対応及びカメラ姿勢を計算し、
入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できる場合、入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を計算する
ことも好ましい。
【００１８】
本発明によれば、撮影された複数の撮影画像を、パノラマ画像を生成するサーバへ送信する端末において、
撮影画像を逐次に入力して記憶するバッファフレーム記憶手段と、
複数の撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、
点対応計算手段及びカメラ姿勢計算手段を用いて、撮影画像間を対応付けるカメラ姿勢を、バッファフレーム記憶手段に記憶させるフレーム間関係計算手段と、
バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、サーバへ送信するフレーム送信手段と
を有することを特徴とする。
【００１９】
本発明によれば、撮影された複数の撮影画像を、パノラマ画像を生成するサーバへ送信する端末に搭載されたコンピュータを機能させるプログラムにおいて、
撮影画像を逐次に入力して記憶するバッファフレーム記憶手段と、
複数の撮影画像について画像間の特徴点の点対応を計算する点対応計算手段と、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算するカメラ姿勢計算手段と、
点対応計算手段及びカメラ姿勢計算手段を用いて、撮影画像間を対応付けるカメラ姿勢を、バッファフレーム記憶手段に記憶させるフレーム間関係計算手段と、
バッファフレーム記憶手段を用いて、パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、サーバへ送信するフレーム送信手段と
してコンピュータを機能させることを特徴とする。
【００２０】
本発明によれば、端末によって撮影された複数の撮影画像から、サーバによって１枚のパノラマ画像を生成する画像生成方法において、
端末は、
撮影画像を逐次に入力して記憶する第１のステップと、
複数の撮影画像について画像間の特徴点の点対応を計算する第２のステップと、
撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算する第３のステップと、
第２のステップ及び第３のステップを繰り返し、撮影画像間を対応付けるカメラ姿勢を記憶する第４のステップと、
パノラマ画像を生成するべく選択された撮影画像と、撮影画像間を結ぶカメラ姿勢の積とを、サーバへ送信する第５のステップと
を有し、
サーバは、端末から受信した複数の撮影画像から、カメラ姿勢によって変換したパノラマ画像を生成する
ことを特徴とする。
【発明の効果】
【００２１】
本発明の画像生成システム、端末、プログラム及び方法によれば、重複領域の少ない又は存在しない複数の撮影画像から１枚のパノラマ画像を高速に生成することができる。
【図面の簡単な説明】
【００２２】
【図１】従来技術についてパノラマ画像の生成が困難な場合を表す説明図である。
【図２】本発明における画像生成システムの機能構成図である。
【図３】フレーム間関係を表す説明図である。
【図４】Homography行列に基づくinlier及びoutlierを表す画像対応図である。
【図５】バッファフレーム記憶部に記憶されたフレーム間関係を表す有向グラフである。
【図６】最短経路のフレーム間関係を表す有向グラフである。
【図７】サーバによって生成されたパノラマ画像を表す説明図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２４】
図２は、本発明における画像生成システムの機能構成図である。
【００２５】
図２によれば、画像生成システムは、端末１とサーバ２とがネットワークを介して接続されている。一般的に、端末１は計算処理能力が比較的低く、サーバ２は計算処理能力が比較的高い。端末１は、例えばスマートフォンやタブレットのような端末であって、周辺状況を撮影するカメラモジュール（Ｗｅｂカメラ）１０１と、ディスプレイ１０２と、通信インタフェース１０３とを有する。
【００２６】
カメラモジュール１０１は、例えば連写や動画によって被写体を撮影した複数枚の撮影画像（フレーム）を、画像生成プログラムへ出力する。複数枚の撮影画像は、１台のカメラで撮影されたものに限られず、複数の異なるカメラで異なる視点から撮影されたものであってもよい。また、それら複数枚の撮影画像は、ユーザの所望の指示タイミングで撮影されたものであってもよい。更に、カメラが映像（ビデオ）を撮影し、その映像から切り出した複数のフレームであってもよい。
【００２７】
ディスプレイ１０２は、情報機器に組み込まれたものに限られず、外部に接続されたテレビや、パーソナルコンピュータ用ディプレイ、又はヘッドマウントディスプレイであってもよい。ディスプレイ１０２は、サーバ２によって生成された１枚のパノラマ画像を表示し、ユーザに視認させる。
【００２８】
通信インタフェース１０３は、インターネットのようなネットワークを介して、パノラマ画像を生成するサーバ２と通信する。通信インタフェース１０３は、複数枚の撮影画像をサーバ２へ送信し、サーバ２から１枚のパノラマ画像を受信する。
【００２９】
一般的な画像生成システムは、複数枚の撮影画像からパノラマ画像を生成するために、以下の２つの処理ステップを要する。
（処理１）撮影画像間の位置関係の検出処理
（処理２）対応関係に基づく撮影画像のレンダリング（繋ぎ合わせ）処理
従来技術のパノラマ画像の生成によれば、これら２つの処理を１つの装置で実現している。
これに対し、本発明によれば、端末１が処理１を実行し、サーバ２が処理２を実行するように分散させている。端末１が、パノラマ画像の生成に必要な複数の撮影画像とその対応関係をサーバ２へ送信し、サーバ２が、それら撮影画像に対してレンダリング処理を実行する。
処理２は、高解像度の撮影画像である場合、必要な計算コストは線形に増大するために、高い画像処理能力を要するサーバ２で処理させるのが好ましい。
一方で、処理１は、高解像度の撮影画像であってもダウンサンプリングし、その低解像度の画像を計算対象とすることができるために、低い計算処理能力の端末１であっても実行することができる。
【００３０】
＜端末側の画像生成プログラム＞
端末側の画像生成プログラムは、バッファフレーム記憶部１１と、フレーム間関係計算部１２と、ダウンサンプリング部１３と、点対応計算部１４と、カメラ姿勢計算部１５と、フレーム送信部１６と、パノラマ画像受信部１７とを有する。これら機能構成部は、端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。尚、これら機能構成部は、端末側の画像生成装置の内部構造として理解できると共に、その処理の流れは、端末側の画像生成方法としても理解できる。
【００３１】
ここで、撮影画像のフレームを、以下のように定義する。
「入力フレーム」    ：カメラから出力されたフレーム（撮影画像）
「バッファフレーム」：バッファフレーム記憶部１１に記憶されているフレーム
「パノラマフレーム」：パノラマ画像の生成に用いられるフレーム
【００３２】
［バッファフレーム記憶部１１］
バッファフレーム記憶部１１は、カメラからの入力フレーム（撮影画像）を、カメラ姿勢の計算用に逐次に記憶する。また、バッファフレーム記憶部１１は、フレーム間関係計算部１２によって算出された、フレーム（撮影画像）間のカメラ姿勢（射影変換行列）も蓄積していく。バッファフレーム記憶部１１は、入力フレームを逐次的にバッファリングしていくが、蓄積可能なフレームの枚数を限定することによって使用メモリ量を節約することもできる。
【００３３】
図５によれば、バッファフレーム記憶部１１に記憶されている全てのバッファフレームについて、カメラ姿勢（射影変換行列）のフレーム間関係が対応付けられている。バッファフレーム記憶部１１は、認識対象を見失った場合の入力フレームのカメラ姿勢と、パノラマフレーム間のカメラ姿勢と、を計算するために蓄積するものである。バッファフレームを多数蓄積することによって、認識対象を見失った場合に復帰できる（入力フレームのカメラ姿勢が計算できる）可能性が高くなる。一方で、端末の使用メモリ量と、復帰計算する際の計算リソースと、パノラマフレーム間のカメラ姿勢を計算する際の蓄積誤差と、が増加する。そこで、少ないメモリ量で効率的にかつ高精度にカメラ姿勢を計算できるようにするため、重複度が低い入力フレームのみをバッファフレームとして蓄積する。
【００３４】
そのために、バッファフレーム記憶部１１は、入力フレームとバッファフレーム間の重複度を計算し、その重複度が所定閾値以下となる場合のみ、入力フレームをバッファフレームとして蓄積する。「重複度」とは、一方のフレームの撮影画像全体に対して、他方のフレームの撮影画像と重複する画像領域の割合をいう。重複度は、入力フレーム、またはバッファフレームそれぞれの４頂点を、カメラ姿勢によって平面射影変換することによって、重複する画像領域を計算することができる。
【００３５】
［フレーム間関係計算部１２−第１の機能］
フレーム間関係計算部１２は、２つのフレーム間関係としてのカメラ姿勢を、点対応計算部１４及びカメラ姿勢計算部１５を用いて算出する。フレーム間関係としては、以下のようなケースがある。
（フレーム間関係１）入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できない場合
（フレーム間関係２）入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できる場合
尚、バッファフレーム記憶部１１にバッファフレームが記憶されていない場合、フレーム間関係は算出されず、入力フレームがバッファフレーム記憶部１１へ蓄積されるだけである。
【００３６】
図３は、フレーム間関係を表す説明図である。
【００３７】
図３（ａ）によれば、入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できない場合（フレーム間関係１）が表されている。
これは、入力フレームが、直前バッファフレームに対して認識対象を見失った状態である。この場合、入力フレームと他のバッファフレームとの間で、点対応及びカメラ姿勢を計算する。ここで、比較対象となる他のバッファフレームは、全てのバッファフレームとしてもよいし、撮影時刻が新しい数枚のバッファフレームに限定してもよい。
バッファフレーム１に対する入力フレーム６のカメラ姿勢：  射影変換行列Ｈ６１
・・・・・
バッファフレーム４に対する入力フレーム６のカメラ姿勢：  射影変換行列Ｈ６４
【００３８】
図３（ｂ）によれば、入力フレームと直前バッファフレームとの間で、点対応及びカメラ姿勢を利用できる場合（フレーム間関係２）が表されている。
この場合、入力フレーム６と直前バッファフレーム５との間で、点対応及びカメラ姿勢を計算する。
バッファフレーム５に対する入力フレーム６のカメラ姿勢：  射影変換行列Ｈ６５
また、直前バッファフレーム５に対して、バッファフレーム１のカメラ姿勢Ｈ５１が既に算出されていたとする。この場合、バッファフレーム１に対する入力フレーム６のカメラ姿勢は、射影変換行列の積によって特定される。
バッファフレーム１に対する入力フレーム６のカメラ姿勢：  Ｈ６５・Ｈ５１
【００３９】
［ダウンサンプリング部１３］
ダウンサンプリング部１３は、点対応計算部１４に入力される撮影画像に対して、ダウンサンプリング（例えばピクセル数の減少）によって１枚の撮影画像の解像度を低減させるべく変換する。これによって、点対応計算部１４及びカメラ姿勢計算部１５の計算量を削減することができる。
【００４０】
［点対応計算部１４］
点対応計算部１４は、２枚の撮影画像（入力フレームとバッファフレーム、又は、２つのバッファフレーム）を入力する。そして、各撮影画像から局所特徴量を抽出し、一方の画像の特徴点ｐと他方の画像の特徴点ｐ'との間の点対応Ｐ＝{(p, p')}を計算する。
【００４１】
局所特徴点の抽出アルゴリズムとしては、例えばＳＩＦＴ(Scale-Invariant Feature Transform)やＳＵＲＦ(Speeded Up Robust Features)、ＯＲＢ(Oriented FAST and Rotated BRIEF)が用いられる。これらの局所特徴点は、以下の要素によって記述される。
座標ｐ＝(x,y)、方向θ、局所特徴ベクトルf
尚、点対応を検出する撮影画像間では、その特徴ベクトルについて同じ次元数である。
【００４２】
例えば、ＳＩＦＴの場合、１枚の画像からは１２８次元の特徴点集合が抽出される。ＳＩＦＴとは、スケールスペースを用いて特徴的な局所領域を解析し、そのスケール変化及び回転に不変となる特徴ベクトルを記述する技術である。一方で、ＳＵＲＦの場合、ＳＩＦＴよりも高速処理が可能であって、１枚の画像から６４次元の特徴点集合が抽出される。また、ＯＲＢは、バイナリコードによる特徴記述としてＢＲＩＥＦ(Binary Robust Independent Elementary Features)を用いて、１つのコンテンツから２５６ビットのバイナリ特徴ベクトルの集合を抽出する。特に、ＯＲＢによれば、ＳＩＦＴやＳＵＲＦと比較して、同等以上の精度を保持すると共に、数百倍の高速化を実現することができる。
【００４３】
次に、点対応計算部１４は、一方の画像の特徴点集合と他方の画像の特徴点集合とをマッチングし、局所特徴点を点対応させる。一方の画像の特徴点ｐに対して、他方の画像の特徴点ｐ'を対応付ける。２つの特徴点ｐ'とｐとの間の距離が短いほど、類似度が高い。
【００４４】
また、点対応計算部１４は、点対応計算の精度を向上させるために、以下の方法を用いることも好ましい。
（１）局所特徴点間の距離に基づいて点対応をソートし、距離が所定閾値以下の点対応のみを用いる。
（２）局所特徴点間の距離に基づいて点対応をソートし、距離が１番目に近いものと２番目に近いものを探索し、それらの距離の比（２番目との距離に対する１番目との距離）が所定閾値以下のものを用いる。
（３）その他、計算コストに優れるバイナリ特徴量や、ＳＳＤ(Sum of Squared Difference)、正規化相互相関（ＮＣＣ）等も用いることもできる。
【００４５】
そして、点対応計算部１４は、画像（フレーム）間における特徴点の点対応を、カメラ姿勢計算部１５へ出力する。
【００４６】
［カメラ姿勢計算部１５］
カメラ姿勢計算部１５は、点対応計算部１４から出力された画像（フレーム）間の点対応を入力する。そして、カメラ姿勢計算部１５は、撮影画像間の点対応から、カメラ姿勢としての射影変換行列を計算する。
【００４７】
カメラ姿勢計算部１５は、具体的は、点対応Ｐ＝{(p, p')}集合から、例えばＲＡＮＳＡＣ(RAndom SAmple Consensus)のようなロバスト推定アルゴリズムを用いて、他方の画像を一方の画像へ変換する射影変換行列を算出する。これによって、誤った点対応を除去することができる。変換行列は、好ましくは「Homography行列（射影変換行列）」であって、最低４組の点対応が必要である。４組全ての点対応が、inlierでなければ正解のHomography行列が得られない。
【００４８】
図４は、Homography行列に基づくinlier及びoutlierを表す画像対応図である。
【００４９】
算出されたHomography行列を用いて他方の画像の特徴点集合を射影し、一方の画像の特徴点とのユークリッド距離が所定閾値以下の対応組を正(inlier)として判定し、それ以外を否(outlier)として判定する。正(inlier)と判定された対応組数が所定閾値以上である場合、当該一方の画像が検出されたと判定し、そのHomography行列を採用する。逆に、正(inlier)と判定された対応組数が所定閾値よりも少ない場合、未検出と判定し、そのHomography行列を除去する。
【００５０】
射影変換行列であるHomography行列Ｈは、以下のように表される。これは、一方の画像の特徴点ｐ'＝(ｘ1,ｙ1)と、他方の画像の特徴点ｐ＝(ｘ2,ｙ2)との関係を表す。
【数１】
2016005263.tif 000003
【００５１】
Homography行列の算出には、一方の画像の特徴点集合と他方の画像の特徴点集合とが用いられる。Homography行列Ｈの未知パラメータ数は、８個（h0〜h7、h8=1）であり、一組の対応点は２個の制約式を与える。従って、この行列Ｈは、４組以上の対応点があれば、最小二乗法によって算出することができる。このようなカメラ姿勢を推定する技術は、ＡＲシステムでは一般的なものである。
【００５２】
そして、Homography行列Ｈを用いて、各撮影画像特徴点を射影した際に、以下のように判定する。
（１）目標画像の特徴点に対して所定閾値以下の近くに射影されれば、inlierと判定する。
（２）逆に、所定閾値よりも遠くに射影されれば、outlierと判定する。図４によれば、outlierは、破線で表されている。
この処理を複数回実行した後、inlierの数が所定閾値以上となったHomography行列Ｈのみを採用する。
【００５３】
最終的に、カメラ姿勢計算部１５は、２枚のフレーム間のカメラ姿勢（射影変換行列Ｈ）を、フレーム間関係計算部１２へ出力する。
【００５４】
［フレーム間関係計算部１２−第２の機能］
再度、フレーム間関係計算部１２について説明する。フレーム間関係計算部１２は、バッファフレーム記憶部１１に対して、撮影画像（ノード）間をカメラ姿勢（エッジ）によって結んだ有向グラフを記憶する。有向グラフのノードは、撮影画像の撮影時刻であるタイムスタンプを識別子とするものであってもよい。
【００５５】
図５は、バッファフレーム記憶部に記憶されたフレーム間関係を表す有向グラフである。
【００５６】
バッファフレーム記憶部１１は、フレームをノードとし、カメラ姿勢をエッジ（枝）とした有向グラフを記憶する。
フレーム１とフレーム２との間は、カメラ姿勢Ｈ２１によって結ばれる。
フレーム２とフレーム３との間は、カメラ姿勢Ｈ３２によって結ばれる。
・・・
フレームＡとフレームＢとの間は、以下のカメラ姿勢の積によって結ばれる。
ＨＢ４・Ｈ４２・Ｈ２１・Ｈ５１-1・ＨＡ５-1
１つのカメラ姿勢のみで結ばれたフレーム間は、推定誤差が蓄積されず、高精度なパノラマ画像を生成することができる。
また、本発明によれば、画像の変化が大きいフレーム間であって点対応が計算できなくても、推定誤差が蓄積されるものの、複数のカメラ姿勢の積によってパノラマ画像を生成することができる。
【００５７】
［フレーム送信部１６］
フレーム送信部１６は、入力フレームの中からサーバ２へ送信するパノラマフレームを選択する。パノラマフレームの選択基準については、例えばネットワークの輻輳状況に従って動的に決定してもよく、１ｆｐｓのように事前に固定してもよい。このとき、それらフレーム間を結ぶカメラ姿勢も、サーバ２へ送信する。尚、フレーム送信部１６は、パノラマフレーム及びカメラ姿勢を、サーバ２へ別々に送信するものであってもよいし、同時にまとめて送信するものであってもよい。
【００５８】
図５によれば、サーバ２へ送信されたパノラマフレームとして、フレームＡ及びＢが表されている。これらカメラ姿勢の積をサーバ２へ送信することによって、サーバ２は、パノラマフレーム間の画像的変化が大きく、重複領域が小さくても（又は無くても）、パノラマ画像を生成することができる。
【００５９】
図６は、最短経路のフレーム間関係を表す有向グラフである。
【００６０】
図６によれば、図５の有向グラフに加えて、新たに入力されたフレームＣをパノラマフレームとしてサーバ２へ送信し、パノラマ画像を生成しようとしている。ここで、パノラマ画像を生成するための代表パノラマフレームを事前に設定しているとする。「代表パノラマフレーム」とは、複数のパノラマフレームの中で、カメラ姿勢の基準となるパノラマフレームをいう。
【００６１】
図６によれば、例えばパノラマフレームＡを代表パノラマフレームとする。このとき、バッファフレーム記憶部１１に記憶された有向グラフの中で、フレームＡとフレームＣとを結ぶ最短経路を探索する。その最短経路における射影変換行列の積から、フレームＡに対するフレームＣのカメラ姿勢を推定することができる。
ＨＣ１ Ｈ５１-1 ＨＡ５-1
最短経路探索アルゴリズムとして、例えばグラフ理論におけるダイクストラ法を用いることができる。尚、図６によれば、代表パノラマフレームとして最初に記憶されたパノラマフレームＡを選択しているが、この選択基準は何ら限定するものではない。
【００６２】
（フレーム間関係計算部１２における他の第１の実施形態）
バッファフレーム記憶部１１にバッファフレームが追加される度に、パノラマフレーム間の最短経路も変化する可能性がある。そのために、フレーム間関係計算部１２は、バッファフレーム記憶部１１を用いて、パノラマ画像を生成するべく過去に送信された撮影画像について、撮影画像間の最短経路を、適宜、再探索するものであってもよい。その最短経路の複数の射影変換行列の積をカメラ姿勢として算出する。できる限り、カメラ姿勢の累積数を少なくすることによって、パノラマ画像の精度を高めることできる。
【００６３】
（フレーム間関係計算部１２における他の第２の実施形態）
フレーム間関係計算部１２は、バッファフレームとパノラマフレームとを含む全ての各撮影画像間について、カメラ姿勢計算部１５を用いて点対応に基づきカメラ姿勢を再計算し、有向グラフを再構築するようにバッファフレーム記憶部１１を制御してもよい。即ち、有向グラフ全体のフレーム間関係を最適化する。
【００６４】
（フレーム送信部１６における他の実施形態）
フレーム送信部１６は、パノラマフレームを送信する際に、バッファフレーム記憶部１１に記憶された、カメラ姿勢によって結ばれた有向グラフを、サーバ２へ併せて送信するものであってもよい。最短経路探索をサーバで実行することで、端末の計算コストをより低減することができる。具体的には、ノードとなるバッファフレームには識別子（タイムスタンプ）のみを割り当てた有向グラフのみを送信し、撮影画像のフレーム自体は送信しない。サーバ２は、有向グラフの中での経路探索によって、パノラマ画像の生成に必要なカメラ姿勢を求める。
【００６５】
＜サーバ側の画像生成プログラム＞
サーバ２は、画像生成プログラムを実行することによって、パノラマ画像生成部として機能させる。パノラマ画像生成部は、端末１から受信した複数の「パノラマフレーム」から、「カメラ姿勢」によって変換したパノラマ画像を生成する。
【００６６】
図７は、サーバによって生成されたパノラマ画像を表す説明図である。
【００６７】
図７によれば、サーバ２は、代表パノラマフレームＡに対する各パノラマフレームＢ及びＣのカメラ姿勢を受信している。
フレームＡに対するフレームＢのカメラ姿勢：ＨＢ４・Ｈ４２・Ｈ２１・Ｈ５１-1・ＨＡ５-1
フレームＡに対するフレームＣのカメラ姿勢：ＨＣ１ Ｈ５１-1 ＨＡ５-1
これによって、パノラマ画像に対するパノラマフレームＡ，Ｂ，Ｃの位置を特定することができる。
【００６８】
以上、詳細に説明したように、本発明の画像生成システム、端末、プログラム及び方法によれば、重複領域の少ない又は存在しない複数の撮影画像から１枚のパノラマ画像を高速に生成することができる。
【００６９】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００７０】
１  端末
１０１  カメラモジュール
１０２  ディスプレイ
１０３  通信インタフェース
１１  バッファフレーム記憶部
１２  フレーム間関係計算部
１３  ダウンサンプリング部
１４  点対応計算部
１５  カメラ姿勢計算部
１６  フレーム送信部
１７  パノラマ画像受信部
２  サーバ
【図２】
2016005263.tif 000004
【図３】
2016005263.tif 000005
【図４】
2016005263.tif 000006
【図５】
2016005263.tif 000007
【図６】
2016005263.tif 000008
【図１】
2016005263.tif 000009
【図７】
2016005263.tif 000010