JP2017207818A - 画像処理装置、画像処理方法、プログラム - Google Patents

画像処理装置、画像処理方法、プログラム Download PDF

Info

Publication number
JP2017207818A
JP2017207818A JP2016098065A JP2016098065A JP2017207818A JP 2017207818 A JP2017207818 A JP 2017207818A JP 2016098065 A JP2016098065 A JP 2016098065A JP 2016098065 A JP2016098065 A JP 2016098065A JP 2017207818 A JP2017207818 A JP 2017207818A
Authority
JP
Japan
Prior art keywords
image
information
processing apparatus
image processing
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016098065A
Other languages
English (en)
Inventor
小林 正明
Masaaki Kobayashi
正明 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016098065A priority Critical patent/JP2017207818A/ja
Publication of JP2017207818A publication Critical patent/JP2017207818A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】入力した映像の被写体(主に背景)の動きをトラッキングし、トラッキング結果から三次元空間上のカメラの位置・姿勢を推定し、その推定したカメラの位置と被写体の相対位置関係から、三次元空間マップを生成処理において、少ない処理負荷で、トラッキング性能を向上する画像処理装置、画像処理方法及びプログラムを提供する。【解決手段】CPU103は、連続した撮像により取得された複数の画像を画像解析の対象画像と非対象画像とに分類する。動き解析部109は、対象画像を使って画像解析を行って動き情報を生成する。三次元空間マップ生成部110は、動き情報であるトラッキング結果から三次元空間上のカメラの位置と姿勢を推定し、その推定したカメラの位置と被写体等の相対位置関係に基づく三次元空間マップを生成する。【選択図】図1

Description

本発明は、画像解析を行う画像処理装置、画像処理方法、プログラム、及び画像処理システムに関する。
近年、被写体等の動きを追跡するトラッキング技術の応用が増えている。トラッキング方法には、特徴点の動きを検出する方法やミーンシフトなどがある。特徴点の検出方法には、SIFT(非特許文献1)やFAST(非特許文献2)などがある。また、トラッキング技術の応用としては、MR(MixedReality)/AR(Argumeneted Reality)がある。これらの技術は、CG(Computer Graphics)オブジェクトが実空間上に存在するかのような映像を作る技術である。MR/ARを実現するには、SfM(Structure from Motion)と呼ばれる技術があり、その具体的なアルゴリズムの一つとしてPTAM(非特許文献3)がある。SfM(PTAM)では、入力した映像の被写体(主に背景)の動きをトラッキングし、トラッキング結果から三次元空間上のカメラの位置・姿勢を推定し、その推定したカメラの位置と被写体の相対位置関係から、三次元空間マップを生成する。そして、三次元空間マップ情報を使って、CGオブジェクトの位置と向きを決定し、入力した映像に重畳することによって、実空間内にCGオブジェクトが存在するような映像が得られる。
"Distinctive Image Features from Scale−Invariant Keypoints" David G. Lowe, International Journal of Computer Vision (IJCV), Vol. 60, No. 2, pp. 91−110, 2004 "Machine learning for high−speed corner detection" Edward Rosten and Tom Drummond, European Conference on Computer Vision, 2006 Georg Klein and David Murray Parallel Tracking and Mapping on a Camera Phone In Proc. International Symposium on Mixed and Augmented Reality (ISMAR´09, Orlando) "Efficient bundle adjustment with virtual key frames: a hierarchical approach to multi−frame structure from motion" Heung−Yeung Shum ,Qifa Ke,Zhengyou Zhang, Computer Vision and Pattern Recognition, 1999. IEEE Computer Society Conference on.
ここで、前述したトラッキング処理の性能は、画像の特性に大きく依存する。例えば、速いシャッタースピード(高速シャッター)で撮影された映像は、視聴時にジャダーと呼ばれる動体の動きの不連続性ができるものの、一つのフレームを静止画として観察した場合、動体領域のエッジやコーナーが鮮鋭になる。一方、遅いシャッタースピード(低速シャッター)で撮影された映像は、ジャダーは少ないもの、動体領域のエッジやコーナーでは動き量に応じて鮮鋭度が低下する(画像がボケる)。また、前述した特徴点を利用したトラッキング処理の場合、コーナー(特徴点)が鮮明となる高速シャッターで撮影された映像を利用することが好ましい。すなわち、低速シャッターで撮像された映像の場合、被写体やカメラが速く動くと、動きボケと呼ばれる鮮鋭度の劣化が生じ、トラッキングなどコンピュータビジョン系の処理性能が低下してしまうため、高速シャッターで撮影することが望まれる。また、高速シャッターの撮影で生じ易いジャダーを減らすために、フレームレートを高くする手段もありうるが、高速フレームレートになると処理負荷が増大してしまう。
そこで、本発明は、少ない処理負荷で、トラッキング性能を向上させることを目的とする。
本発明は、連続した撮像により取得された複数の画像を画像解析の対象画像と非対象画像とに分類し、前記対象画像を使って画像解析を行って動き情報を生成することを特徴とする。
本発明によれば、少ない処理負荷で、トラッキング性能を向上させることが可能となる。
第1、第2の実施形態のHMDの概略的な構成例を示す図である。 第1の実施形態のHMDの動作のフローチャートである。 画像の時間的なズレを説明する図である。 第2の実施形態のHMDの動作のフローチャートである。 第3の実施形態のMRシステムの概略的な構成を示す図である。 第3の実施形態のHMD側の動作のフローチャートである。 第3の実施形態のホストコンピュータ側の動作のフローチャートである。
以下、図面を参照しながら本発明の一実施形態について説明する。
<第1の実施形態>
実施形態の画像処理装置の一適用例として、カメラとディスプレイを内蔵し、MR(MixedReality)/AR(Argumeneted Reality)機能を備えたヘッドマウントディスプレイ(以下、HMD100とする。)について説明する。図1(a)は、第1の実施形態のHMD100の概略構成例を示す図である。本実施形態のHMD100は、撮像部102のカメラにて撮像した映像から被写体等の動きをトラッキングし、そのトラッキング結果から三次元空間上のカメラの位置と姿勢を推定する。さらに、HMD100は、その推定したカメラの位置と被写体等の相対位置関係に基づく三次元空間マップを生成し、その三次元空間マップを基にCGオブジェクトの位置と向きを決定する。そして、HMD100は、そのCGオブジェクトを、撮像された映像に重畳してディスプレイに表示することにより、実空間内にCGオブジェクトが存在するような映像を生成可能となされている。
以下、第1の実施形態のHMD100が備えている各モジュールとそれら各モジュールの動作の概要について、図1(a)を参照しながら説明する。
撮像部102は、例えばレンズ、撮像センサ、レンズ制御部を有するカメラである。撮像部102のレンズは、ズームレンズ、フォーカスレンズを含み、レンズ制御部がそれらズームレンズやフォーカスレンズを駆動制御して、ズームやフォーカスを制御する。撮像部102の撮像センサは、レンズから取り込んだ光を受光し、受光信号をRGB画像データに変換する。バス101は、HMD100内でのデータが流れる経路である。
CPU103は、オペレーティングシステム(OS)やアプリケーションプログラム等のコンピュータプログラムに基づいて、計算処理を行ったり、機器全体の動作を制御したりする。なお、本実施形態では、特別な記述がない場合、CPU103がHMD100内のモジュール制御を行うものとする。また、本実施形態ではCPUが一つであるとして説明するが、これに限定されず複数のCPUが存在する構成をとってもよい。本実施形態の場合、CPU103が制御手段の一例である。
フラッシュメモリ108は、不揮発メモリであり、プログラムやデータをファイルとして記憶している。RAM104は、データ等の読み書きが可能なメモリであり、CPU103や他のモジュールの情報を一時的に格納するワークエリア等としても機能する。本実施形態では、プラグラムや各種データはフラッシュメモリ108に記録されており、これらがバス101を介してRAM104へ入力され、CPU103がプログラムの実行及び各種処理を行う構成をとる。
画像フィルタ部105は、RAM104に記憶された撮像画像データにノイズ除去などのフィルタ処理を施し、そのフィルタ処理後の画像データをRAM104に記憶する。本実施形態ではフィルタ処理はバイラテラルフィルタ処理とする。
グラフィックプロセッサ106は、ディスプレイ107に映像を表示する際に必要な処理を実行する。また、このグラフィックプロセッサ106は、汎用的な二次元・三次元画像処理をプログラマブルに実行できる。本実施形態の場合、グラフィックプロセッサ106は、画像合成手段としての機能も備えている。ディスプレイ107は、グラフィックプロセッサ106が処理した映像を表示する表示装置である。本実施形態の画像処理装置はHMD100であるため、ディスプレイ107は両眼用の2つのディスプレイとなされている。なお、本実施形態では、両眼用の二つのディスプレイに表示する像は同一であるものとして説明する。
動き解析部109は、RAM104内の撮像画像データから、いわゆるFAST特徴点検出方式により特徴点を検出した後、その特徴点を中心とするパッチ領域を使ったブロックマッチングによる動き探索を実行することにより、特徴点の動きベクトルを得る。動き解析部109により得られた動きベクトルは動き情報として、RAM104に記憶される。
三次元空間マップ生成部110は、RAM104に記憶された特徴点の動き情報を読み出し、その動き情報に基づいて三次元空間マップを生成するモジュールである。CG位置計算部111は、位置生成手段の一例であり、CGオブジェクトを三次元空間マップ上に配置(描画)する位置と向きを算出する。CG生成部112は、CG生成手段の一例であり、CG位置計算部111により算出された位置と向きに、CGオブジェクトが配置されたCG情報を生成する。
以下、第1の実施形態のHMD100における全体的な動作と各モジュールの詳細な動作について説明する。
ここで、一般に、動画の映像は、50fps(フレーム毎秒)若しくは60fpsのフレームレートで撮像されて表示される。これに対し、本実施形態の場合、撮像部102は、120fpsで画像を連続的に撮像した動画の各フレーム画像のデータを、順次、RAM104へ記憶する。撮像部102において120fps(フレーム毎秒)で画像を撮像している理由についての説明は後述する。また、本実施形態において、画像サイズは横×縦が1920×1080画素であるとする。なお、画像サイズやフレームレートは、この例に限定されるものではない。
また、本実施形態のHMD100において、内部フォーマットは、各チャンネル8ビットのRGB画像を扱うフォーマットであるとし、また、画像データのレンジは、各チャンネルの色の強度が16から235のレンジで表されるリミティッドレンジとする。リミティッドレンジでは、(R,G,B)=(16,16,16)が黒色、(R,G,B)=(235,235,235)が白色、(R,G,B)=(16,235,16)が青色のように色が表現され、8ビットのレンジの全ては使われない。なお、画像フォーマットは、これに限定されずYUV画像、モノクロの輝度画像のようなフォーマットでもよい。
CPU103は、前述した120fpsで撮像された画像データの各フレーム画像を、フレーム番号により、動き解析部109の動き解析の対象となされる対象画像と、動き解析の対象とされない非対象画像とに分類する。本実施形態の場合、CPU103は、各フレーム画像のフレーム番号により、偶数フレーム画像を対象画像とし、奇数フレーム画像を非対象画像として分類する。これは、画像データの各フレームを所定の周期毎(この場合は1フレームおきの周期毎)に対象画像としていることに相当する。言い換えれば、これは奇数フレームを間引いて処理することに相当する。そして、CPU103は、対象画像である偶数フレーム画像のデータをRAM104から読み出し、その偶数フレーム画像データに対するノイズ除去フィルタ処理を画像フィルタ部105に行わせる。このフィルタ処理後の画像データは、RAM104に記憶される。
なお、本実施形態では、対象画像として偶数フレームを選択する例を挙げたが、これには限定されず、奇数フレームが対象画像として選択されてもよい。また、本実施形態において、画像フィルタ部105のフィルタ処理は、バイラテラルフィルタ処理としており、これはノイズ除去処理を目的としている。ガウシアンフィルタなどの一般的な平滑化フィルタ処理は、動き解析や三次元空間マップ作製処理の性能をかえって低下させてしまうことがある。これに対し、バイラテラルフィルタ処理のようなエッジ保存型のフィルタ処理は、ノイズ除去をしつつエッジの鮮鋭性を維持して、動き解析や三次元空間マップ作製処理を行うことができるため、本実施形態ではバイラテラルフィルタ処理を採用している。なお、フィルタ処理は、バイラテラルフィルタ処理に限定されるものではない。例えば、輪郭補正フィルタ処理や、画素がエッジと平坦部のどちらに含まれるかを判定してフィルタ処理を切り替えるタイプのフィルタ処理でもエッジ保存性があり、これらも本実施形態のフィルタ処理の目的に適している。その他にも、フィルタ処理は、重み付きメディアンフィルタ処理のようなコーナー保存性の高いフィルタ処理であってもよい。これは、特徴点検出処理の性能低下を抑えるためには、コーナー保存性が重要なファクターであるからである。
動き解析部109は、動き解析処理を行って特徴点の動きベクトル情報(動き情報)を生成する。この動きベクトルは、撮像画像内の被写体等の動きをトラッキングしたトラッキング結果に相当する。ここで、本実施形態において、動き解析部109による動き解析処理は、輝度の画像成分を用いて行うものとし、内部フォーマットがRGB画像、又はYUV画像の場合には、自動的に輝度画像に変換されるものとして説明する。動き解析部109による動き解析により生成された動き情報は、RAM104を介して三次元空間マップ生成部110に送られる。
三次元空間マップ生成部110は、動き情報に基づいて三次元空間マップを生成する。具体的には、三次元空間マップ生成部110は、動き情報であるトラッキング結果から三次元空間上のカメラの位置と姿勢を推定し、その推定したカメラの位置と被写体等の相対位置関係に基づく三次元空間マップを生成する。三次元空間マップ情報は、CG生成部112とCG位置計算部111に送られる。
CG位置計算部111は、三次元空間マップ上のどの位置にCGオブジェクトを配置するかを決定し、その決定した配置位置情報をCG生成部112に送る。なお、動き解析部109、三次元空間マップ生成部110、CG位置計算部111の動作については、いわゆるSfM技術を基に行われるものとする。その方法については、例えば非特許文献3や非特許文献4などに公開されているため、ここではその詳細な説明は省略する。本実施形態における三次元空間マップ生成に関しては、ここに挙げた方式に限定されず、あらゆるSfM技術が適用可能である。
CG生成部112は、CGオブジェクトデータと三次元空間マップ情報及び配置位置情報を基に、三次元空間の所定の位置(CG位置計算部111により決定された位置)にCGオブジェクトが存在するようにCGオブジェクトを描画するCG情報を生成する。このCG情報はグラフィックプロセッサ106に送られる。CGオブジェクトデータは、CGの形状を決定する三次元の頂点座標情報とテクスチャ情報からなり、これらの情報は例えばフラッシュメモリ108に用意されていて、予めRAM104に読み込まれているものとする。また、本実施形態では、生成されたCG情報は、いわゆるクロマキー付きの画像データとなされている。ただし、これには限定されず、透明領域とその透明度を示すαチャンネル画像と実画像との双方を扱う構成であってもよい。以下の説明では、CG情報をCG画像とする。
グラフィックプロセッサ106は、前述した120fpsで撮像されてRAM104に記憶された画像データの隣り合った偶数フレームと奇数フレームの画像データを加算平均してベース画像データを生成する。加算平均は下記式(1)のように表せる。なお、式(1)の(x,y)は画素の座標、n'は出力フレーム番号レート、n(=2×n')は入力されるフレーム番号、cはカラーチャンネルである。また、式(1)のSc(x,y,n)はベース画像、Ic(x,y,n)は偶数フレームの画像、Ic(x,y,n+1)は奇数フレームの画像を表し、カラーチャンネルcは(R,G,B)で表される。
Figure 2017207818
更に、グラフィックプロセッサ106は、ベース画像に対し、CG生成部112にて生成されたCG画像を重畳する。本実施形態では、(R,G,B)が(0,255,0)に近い色を透明色として扱い、ベース画像とCG画像を重畳するものとする。ここで、透明色と判定するための閾値をT0,T1,T2とすると、重畳処理は下記式(2)で表される。本実施形態では、各チャンネル8ビットの場合には、例えばT0=8,T1=248,T2=8とする。なお、式(2)において、Oc(x,y,n')は重畳処理後の画像を示す。また、式(2)のGc(x,y,n)はCG画像であり、G0(x,y,n)は赤色に対応したCG画像、G1(x,y,n)は緑色に対応したCG画像、G2(x,y,n)は青色に対応したCG画像である。
Figure 2017207818
グラフィックプロセッサ106によりベース画像にCG画像が重畳されたCG重畳画像(以下、CG合成画像と表記する)のデータは、ディスプレイ107に送られる。ディスプレイ107は、グラフィックプロセッサ106から供給されたCG合成画像データから60fpsの映像を生成して表示する。
次に、上述した第1の実施形態のHMD100における一連の動作について図2のフローチャートを参照しながら説明する。
図2は、連続した隣り合う偶数フレームと奇数フレームの2フレームを一組として合成した合成画像(ベース画像)に対してCG画像を重畳することでCG合成画像を生成する場合を例に挙げたフローチャートである。図2のフローチャートの各処理は、CPU103による制御の下で、HMD100の各モジュールにより行われる。以下の説明では、図2のフローチャートの各処理のステップS201〜ステップS209をS201〜S209と略記し、これは以降のフローチャートにおいても同様とする。なお、S201〜S209の各処理のステップは順番に実行されるが、データの入出力に依存関係のない処理は順番を変えて実行されてもよい。
S201では、CPU103は、撮像部102により撮像されてRAM104に格納されたフレーム画像のうち、偶数フレームであるフレーム番号nの画像データ(対象画像のデータ)を取得する。ここで、撮像部102による撮像は120fpsのフレームレートで行われるが、本実施形態では、2フレームを一組としてベース画像を生成するため、S201で画像データを取得する際のフレーム番号のnは二つずつインクリメントされる。S201で取得された画像データは画像フィルタ部105とグラフィックプロセッサ106に送られる。S201の後、CPU103は、S202に処理を進める。
S202では、CPU103は、画像フィルタ部105を制御して、S201で取得された画像データに対するノイズ除去フィルタ処理を行わせる。このフィルタ処理後の画像データは、動き解析部109に送られる。S202の後、CPU103は、S203に処理を進める。
S203では、CPU103は、動き解析部109を制御して、S202のフィルタ処理後の画像データに対する動き解析処理を行わせる。この動き解析処理による動き解析結果(動き情報)は、三次元空間マップ生成部110に送られる。S203の後、CPU103は、S204に処理を進める。
S204では、CPU103は、三次元空間マップ生成部110を制御して、S203の動き解析結果(動き情報)に基づいて三次元空間マップを生成させる。この三次元空間マップ生成処理による三次元空間マップ情報は、CG生成部112に送られる。S204の後、CPU103は、S205に処理を進める。
S205では、CPU103は、撮像部102により撮像されてRAM104に格納されたフレーム画像のうち、奇数フレームであるフレーム番号n+1の画像データ(非対象画像のデータ)を取得する。S201で取得された画像データは、グラフィックプロセッサ106に送られる。S205の後、CPU103は、S206に処理を進める。
S206では、CPU103は、グラフィックプロセッサ106を制御して、S201で取得された偶数フレームのフレーム番号nの画像と、S205で取得された奇数フレームのフレーム番号n+1の画像とを合成させてベース画像を生成させる。このときの合成処理は、前述した式(1)で示される計算式により行われる。S206の後、CPU103は、S207に処理を進める。
S207では、CPU103は、フラッシュメモリ108に予め用意されているCGオブジェクトデータを読み込んで、CG生成部112に送る。CGオブジェクトデータには、オブジェクトの座標、形状、テクスチャ情報が含まれる。S207の後、CPU103は、S208に処理を進める。
S208では、CPU103は、CG生成部112を制御して、S204で生成された三次元空間マップ情報と、S207で取得されたCGオブジェクトデータとを用いて、フレーム番号nの画像に対応した二次元空間に射影されるCG画像を生成させる。S208で生成されたCG画像のデータは、グラフィックプロセッサ106に送られる。なお、本実施形態では、R値が0、G値が255、B値が0である画素を透明であるものとして扱う。S208の後、CPU103は、S209に処理を進める。
S209では、CPU103は、グラフィックプロセッサ106を制御して、S206で生成されたベース画像に、S208で生成されたCG画像を重畳させて、CG合成画像を生成させる。このときの重畳処理は、前述した式(2)に基づいて行われる。すなわち、CG画像の画素が前述したように透明である場合には、ベース画像の絵が透過的に残り、CGオブジェクトが前景で、ベース画像が背景となるように描画されたCG合成画像が生成される。S209の後、CPU103は、図2のフローチャートの処理を終了する。次の2フレームを一組とする画像についての処理が行われるとき、図2のフローチャートの処理が実行される。
上述した各処理は、CPU103による制御の下でHMD100の各モジュールにより行われているが、CPU103に十分な演算能力がある場合には、各モジュールの処理の一部、又は全てをCPU103が行ってもよい。この場合、上述した各処理をCPU103が実行する際のプログラムは、フラッシュメモリ108等の記録媒体に予め用意されていてもよいし、また、インターネット等を介してダウンロードされてRAM104等にロードされてもよい。
本実施形態の画像処理装置は、カメラとディスプレイを内蔵したHMD100に適用される例を挙げたが、これに限定されず、例えば、カメラ装置、組込みシステム、タブレット端末、スマートフォン、シースルー型のHMD等の情報機器にも適用可能である。また、本実施形態では、二つのディスプレイに同じ画像を表示する例を挙げたが、例えば両眼視差技術にも適用可能である。両眼視差を用いる場合、撮像部を複数(少なくとも二つ)備え、それら撮像部が撮像した複数の画像から視差のある二つの画像を生成し、それら画像に前述したようなCG画像を合成して、二つのディスプレイに表示する構成を用いることができる。
<本実施形態における動き解析処理の説明>
ここで、前述したように、一般に、映像は50fps若しくは60fpsのフレームレートで撮像して表示されることが多い。これは、人間の臨界融合周波数(人間が光の明滅を認識可能な周波数の上限)が30Hzから60Hzの間にあることに起因する。また、映像撮影が行われる際、撮像される各フレームの最長のシャッタースピードは、フレームレートの逆数になる。つまり、60fpsの映像であれば最長のシャッタースピードは1/60秒(=約16ミリ秒)、120fpsであれば最長のシャッタースピードは1/120秒(約8ミリ秒)になる。そして、一般に、映像の撮影は、最長のシャッタースピードで行われることが多い。これは、ノイズの発生を抑え、ジャダーと呼ばれる動きの不連続を視認し難くするためである。特に、例えばシャッタースピードが4ミリ秒や1ミリ秒のように速くなるにつれて、ジャダーが視認されやすくなる。
一方、近年は、コンピュータビジョン技術の発達により、画像をコンピュータで解析することが重要となってきている。ここで、60fpsの映像でもあっても、画像一枚一枚には、撮像ボケと呼ばれる、被写体の動きやカメラの移動などに起因する鮮鋭度の低下が発生することがある。撮像ボケは、被写体が動いている場合や、カメラが手振れなどで動いたことなどにより発生し、それら被写体の動きやカメラの動きが速いほど大きくなる。そして、この撮像ボケは、動き解析処理を含む画像の解析性能を低下させる要因となっている。
このようなことから、本実施形態のHMD100では、120fpsの高速フレームレートで且つ高速シャッタースピードによる撮影を行っている。そして、本実施形態のHMD100は、その120fpsの映像からフレーム画像を間引いた60fpsの映像を利用することにより、8ミリ秒の高速シャッタースピードの撮影に相当した撮像ボケの少ない映像を得るようにしている。また、本実施形態のHMD100では、120fpsの映像からフレーム画像を間引いた60fpsの画像データに対して解析処理等が行われるため、処理負荷は少ない。
ただし、高速シャッタースピードで撮影された画像は、ノイズが多くなり、ジャダーが発生し易い。これに対し、本実施形態の場合は、2フレームを一組として合成したベース画像にCG画像を重畳して生成したCG合成画像を表示することで、シャッタースピードが16ミリ秒相当のジャダーとノイズが少ない画像を生成している。したがって、ユーザは、ノイズとジャダーの少ない映像を視聴することができる。なお、本実施形態では120fpsのフレームレートで撮像された映像を60fpsのフレームレートに落として解析処理等を行う例を挙げたが、これには限定されない。例えば、240fpsのフレームレートで撮像し、これを例えば4フレームおきの所定の周期毎に選択すること、つまりフレーム数を四分の一に間引くことで60fpsのフレームレートに落として解析処理等を行うことなども可能である。
また、高速シャッタースピードで撮像した画像を使った解析処理においても、ノイズは性能低下の要因になるが、本実施形態では、画像フィルタ部105により、解析用の画像にエッジ保存型のフィルタ処理を施すことによりこの問題を解決している。一般に、画像にフィルタ処理を施すと、フィルタ処理の工夫によりエッジは保存できても、テクスチャの再現性は低下する。しかし、エッジや特徴点を利用したコンピュータでの画像解析では、テクスチャの再現性の低下による解析性能の低下は軽微である。また、これらの処理は、最終的にユーザにより視聴される画像のテクスチャの再現性に影響を与えない。
<第2の実施形態>
以下、第2の実施形態の画像処理装置の一適用例として、カメラの動きを検出し、その動きに応じてCGオブジェクトの位置を変更する仕組みを有するHMDについて説明する。図1(b)は、第2の実施形態のHMD120の概略構成例を示す図である。図1(b)のHMD120は、前述した図1(a)の構成に慣性センサ113が追加された例である。なお、図1(b)において、前述した図1(a)と同じモジュールには同じ参照符号を付して、それらの詳細な説明については省略する。
第2の実施形態のHMD120は、慣性センサ113の出力と、画像データから計算される画面全体の動き量とから、撮像部102のカメラの移動量を計算することができるものとする。移動量を求める技術は、参考文献"MEMSジャイロセンサと単眼カメラを利用した高精度で頑健な姿勢推定、計測自動制御学会論文集、VOL.47,NO.10,442/449(2011)"等に広く公開されているため、その詳細な説明は省略する。なお、慣性センサは、ジャイロセンサには限定されず、例えば加速度センサ、ジャイロセンサと加速度センサのハイブリッドセンサなどであってもよい。また、三次元空間内におけるカメラの移動量の計算方法についても様々な方法があり、上述の参考文献の例には限定されない。第2の実施形態では、三次元空間内におけるカメラの移動量を用いてCG画像の重畳位置を補正する動作が異なる以外は、第1の実施形態での動作と同じであるとする。
以下、第2の実施形態のHMD120のグラフィックプロセッサ106が行うCG画像の重畳処理について説明する。CPU103は、撮像部102のカメラがフレーム番号nとフレーム番号n+2の画像を撮像した際のカメラの動き(ブレ等、以下、グローバルモーションとする。)を二次元ベクトルとして求める。この二次元ベクトルを(dx,dy)とすると、グラフィックプロセッサ106によるCG画像の重畳処理は、下記式(3)の計算式で表される。
Figure 2017207818
(dx,dy)の計算方法について図3を参照しながら説明する。図3は、画像の時間的なズレを説明する図である。図3において、フレーム番号n(nは整数)の画像300は、撮像部102のカメラが時間tnに撮像したフレーム画像であり、フレーム番号n+1の画像301は時間tn+1に撮像したフレーム画像であるとする。以下同様に、フレーム番号n+2の画像302は時間tn+2、フレーム番号n+3の画像303は時間tn+3、フレーム番号n+4の画像304は時間tn+4に撮影したフレーム画像であるとする。また、図3の例では、画像300,302,304が対象画像、画像301,303が間引きされる非対象画像であるとする。ここで、フレーム番号nの画像300が撮影された時間tnから、フレーム番号n+2の画像302が撮像された時間tn+2までの間にカメラが移動した三次元移動量は、慣性センサ113の出力と各フレーム画像から得られる動き量とから算出される。このように、カメラの三次元移動量は、フレーム番号n+1が間引かれた状態の、フレーム番号nとフレーム番号n+2から得られる。同様に、フレーム番号n+3は間引かれて、フレーム番号n+2の画像が撮影された時間tn+2から、フレーム番号n+4の画像が撮像された時間tn+4までの間にカメラが移動した三次元移動量が算出される。そして、CPU103は、この三次元的な動きを、撮像画像の二次元の座標系に射影して、二次元のベクトルVを求め、この二次元ベクトルVを四分の一にしてベクトル(dx,dy)を求める。
また、グラフィックプロセッサ106は、前述の第1の実施形態で説明したように偶数フレームと奇数フレームの画像データを加算平均して、前述したベース画像を生成する。つまり、図3において、ベース画像(320)は、フレーム番号nの画像300とフレーム番号n+1の画像301との加算平均により求められる。同様に、ベース画像(321)は、フレーム番号n+2の画像302とフレーム番号n+3の画像303との加算平均により求められる。ただし、ベース画像(320)の時間的な中心位置は、フレーム番号nの時間軸上の中心位置からずれており、フレーム番号nの画像300とフレーム番号n+1の画像301との間の時間軸上の中心位置と略々一致する。同様に、ベース画像(321)の時間的な中心位置は、フレーム番号n+2の時間軸上の中心位置からずれており、フレーム番号n+2の画像302とフレーム番号n+3の画像303との間の時間軸上の中心位置と略々一致する。
一方、CG生成部112は、第1の実施形態で説明したように、CGオブジェクトデータと三次元空間マップ情報及び配置位置情報を基に、三次元空間の所定の位置にCGオブジェクトが存在するようにCGオブジェクトを描画したCG画像を生成する。図3の例では、ベース画像(320)に対してはCG画像340が生成され、ベース画像(321)に対してはCG画像341が生成される。そして、グラフィックプロセッサ106は、それらベース画像にCG画像を重畳してCG合成画像を生成するが、ここで前述したようにベース画像の時間的な中心位置はフレーム画像の時間軸上の中心位置からずれている。
このため、第2の実施形態において、CPU103は、前述のようにしてもとめたグローバルモーションに応じた二次元ベクトルVを四分の一にしたベクトル(dx,dy)を基に、CG画像に対する位置補正を行って、位置補正済みのCG画像を生成する。図3の例の場合、CG画像340については位置補正350により位置補正済みのCG画像360が生成され、CG画像341については位置補正351により位置補正済みのCG画像361が生成される。これにより、グラフィックプロセッサ106では、ベース画像に位置補正後のCG画像(360,361)を重畳してCG合成画像320,321が生成される。
図4は、第2の実施形態のHMD120における一連の動作を示すフローチャートである。図4のフローチャートは、偶数フレームと奇数フレームの2フレームを一組として生成されたベース画像に対し、前述のように位置補正を行ったCG画像を重畳してCG合成画像を生成する処理のフローチャートである。なお、図4のフローチャートにおいて、前述した図2のフローチャートと同じ処理には同じ参照符号を付して、その詳細な説明については省略する。図4のフローチャートは、前述の図2のフローチャートのS209に代えて、S210とS211の処理が行われる。
図4のフローチャートの場合、S208の後、CPU103は、S210に処理を進める。S210では、CPU103は、フレーム番号nとフレーム番号n+2の撮影がなされた間の画面全体の動き(カメラの動き)を示すグローバルモーションを求める。グローバルモーションは、CPU103が前述したように慣性センサ113の出力と画像データから求める。S210の後、CPU103は、S211に処理を進める。
S211では、CPU103は、前述したようにCG生成部112で生成されたCG画像の三次元空間内における配置位置を、グローバルモーション分に相当する位置だけ補正して、ベース画像に重畳することにより、CG合成画像を生成させる。この場合、具体的には、フレーム番号nの画像に対しては、三次元空間内で0.5フレーム分だけ未来の時間に存在すべき位置にCGオブジェクトが重畳されることになる。このS211の後、CPU103は、図4のフローチャートの処理を終了する。
なお、グローバルモーション算出は、慣性センサ113の出力から計算される例には限定されず、以下のような方法によっても算出可能である。例えば、画像から画素毎の動きベクトル(いわゆるオプティカルフロー)を算出し、その動きベクトルの水平成分と垂直成分のヒストグラムを算出する。そして、それぞれの最頻値を、グローバルモーションの二次元ベクトルを表現する動きベクトルの水平と垂直の成分とする。
このように、第2の実施形態では、HMD120の撮像部102に搭載されているカメラの三次元移動量を計算し、その三次元移動量を使ってCG画像の重畳位置を補正することにより、時間的なズレを抑制している。なお、本実施形態では二次元に射影した空間で位置を補正したがこれには限定されない。例えば、カメラの三次元移動量を三次元空間マップの空間に射影して、CGオブジェクトの描画位置を、射影されたカメラの三次元移動量を使って補正して、描画する構成をとってもよい。この方式の場合も前述同様の効果を得ることができる。
<第3の実施形態>
図5は、第3の実施形態の画像処理システムの一構成例を示す図である。本実施形態の画像処理システムは、撮像及び表示を行う画像処理装置の一例であるHMD150と、CG画像とベース画像を生成してCG合成画像を生成する情報処理装置の一例であるホストコンピュータ500とからなる。HMD150とホストコンピュータ500は、例えば無線ネットワークにより論理的に接続されている。なお、図5において、前述した図1(a)と同じモジュールには同じ参照符号を付して、それらの詳細な説明については省略する。
図5のMRシステムのHMD150において、画像符号化部151は、例えばH.264の規格に従って映像を符号化して符号化ストリームを生成する。以後、符号化ストリームは、H.264により符号化されているものとして説明する。画像復号部152は、符号化ストリームを復号する。なお、H.264ではYUVデータの符号化・復号が行われるのに対し、本実施形態のHMD150ではRGB画像データを扱っている。このため、画像符号化部151と画像復号部152は、入出力されるRGB画像データを内部でYUVデータに変換して処理するものとする。
ネットワーク品質計算部153は、ネットワーク品質を検出する品質検出手段の一例であり、後述するようにネットワーク品質を計算する。HMD150のネットワークI/F154、ホストコンピュータ500のネットワークI/F505は、無線ネットワークのインターフェース(I/F)モジュールである。無線ネットワークの方式には、IEEE802.11nなど様々な方式が存在するが、本実施形態では何れの方式であってもよい。
図5のMRシステムのホストコンピュータ500において、バス501はホストコンピュータ内のデータが流れる経路である。ホストコンピュータ500のCPU506は、各種の計算処理を行い、また、機器全体の動作等を制御する。特に説明がない限り、ホストコンピュータ500内の各モジュールの制御はCPU506が行うものとする。RAM508は、CPU506が扱うデータや他のモジュールが扱うデータ等を一時的に格納するワークエリア等として機能する。グラフィックプロセッサ507は、三次元CGを生成する機能、画像を合成する機能等を有する。詳細は後述するが、第3の実施形態では、図1(a)や図2(b)の三次元空間マップ生成部110〜CG生成部112が実行していた処理を、CPU506とグラフィックプロセッサ507が協調して行うようになされている。外部ストレージ509は、不揮発性の記録媒体を備え、例えばプログラムやデータをファイルとして記録等する。
以下、第3の実施形態のMRシステムにおいて、HMD150の各モジュールと、ホストコンピュータ500の各モジュールとの、協調的な基本動作について説明する。本実施形態では、動き解析の際には、前述した第1,第2の実施形態の場合と同様にして、撮像部102により撮像された映像データから動き情報を生成しているものとする。また、第3の実施形態の場合、HMD150の撮像部102により撮像された映像データは、ホストコンピュータ500に伝送される。本実施形態では、HMD150は、撮像部102により撮像された映像データから60fpsのフレームレートの左右両眼用の映像データを生成し、その映像データを符号化してホストコンピュータ500に伝送する例を挙げて説明する。
HMD150の画像符号化部151は、60fpsのフレームレートの左右両眼用の映像データを符号化して、70Mbps(ビット毎秒)のビットレートの符号化ストリームを生成する。そして、CPU103は、その符号化ストリームを、MPEG Transport Stream(ISO/IEC standard 13818−1)とRTP(RFC3550)にてパケタイズし、ネットワークI/F154へ出力する。ネットワークI/F154は、その符号化ストリームのパケットを、無線ネットワークを介して、ホストコンピュータ500のネットワークI/F505へ伝送する。
また同様に、HMD150の動き解析部109が生成した動き情報についても、無線ネットワークを介してホストコンピュータ500へ伝送される。ここで、動き情報である動きベクトルは、始点のXY座標とベクトルのXY成分の各要素から構成され、それら各要素は11ビットのデータであるとする。また、動きベクトルの数は1フレームあたり最大2000本とする。そのため、60fpsの映像では、動きベクトルの伝送に、最大で5.28Mbps(=11×4×2000×60/1000000)が必要となる。
ホストコンピュータ500のCPU506は、受信したパケットから、H.264の符号化ストリームを抽出して復号し、グラフィックプロセッサ507へ出力する。本実施形態では、図1(a)や図2(b)の三次元空間マップ生成部110〜CG生成部112が実行していた処理を、CPU506とグラフィックプロセッサ507が協調して行う。詳細については後述するが、CPU506とグラフィックプロセッサ507の協調動作により、前述したベース画像とクロマキー付きのCG画像を生成し、ベース画像にCG画像を重畳させてCG合成画像を生成する。なお、CG画像を生成する際の動きベクトルは、HMD150から無線ネットワークを介して得られた動きベクトルを用いる。
ホストコンピュータ500のCPU506は、生成したCG合成画像をH.264の規格に従って符号化し、MPEG Transport StreamとRTPにてパケタイズして、ネットワークI/F505へ出力する。ネットワークI/F505は、パケタイズされた符号化ストリームを、無線ネットワークを介して、HMD150のネットワークI/F154へ伝送する。
HMD150のCPU103は、ネットワークI/F154が受信した符号化ストリームを画像復号部152に送り、画像復号部152での復号処理によりCG合成画像データを復元し、そのCG合成画像のデータがグラフィックプロセッサ106に送られる。グラフィックプロセッサ106は、画像復号部152で復号されたCG合成画像データに対し、ディスプレイ107に映像を表示する際に必要な処理を実行してディスプレイ107に出力する。これにより、ディスプレイ107にはCG合成画像が表示される。
このように、第3の実施形態では、HMD150は撮像された映像データと動き情報をホストコンピュータ500へ伝送し、ホストコンピュータ500はCG合成画像データをHMD150へ送り返すことにより、一連のMR処理が実現されている。なお、第3の実施形態では、ホストコンピュータ500が生成するCG画像は、クロマキー付き画像としたが、これに限定されず、別途αチャンネル画像を持っていてもよい。また、別途αチャンネル画像を生成した場合、そのαチャンネル画像のデータを符号化してHMD150へ伝送してもよい。
ここで、第3の実施形態の場合、映像データの伝送の際には、特に間引き等がなされることなく、HMD150からホストコンピュータ500へ映像データが伝送されている。しかしながら、例えば移動体が無線ネットワークの電波を遮蔽したり、無線ネットワークに接続するデバイスが増加したりして、データ伝送品質が低下した場合、映像データの伝送が正常に出来なくなる場合がある。以下、第3の実施形態のMRシステムにおいて、ネットワーク品質が低下した場合の動作について説明する。
HMD150のネットワーク品質計算部153は、ネットワークI/F154を介して伝送されるデータから無線ネットワークの通信品質を計算し、そのネットワーク品質情報をCPU103に送る。このときのCPU103は、ネットワーク品質情報を基に、画像データから対象画像として分類する画像の割合を制御する。例えば、CPU103は、ネットワーク品質情報から、60fpsの映像伝送が困難であると判定した場合には、画像データから対象画像として分類する画像の割合を低下させるように制御する。より具体的には、CPU103は、60fpsのフレームレートの映像からフレーム画像を間引いて、例えば30fpsのフレームレートに落とし、その30fpsのフレームレートに落とされた映像を画像符号化部151に符号化させる。このときの画像符号化部151による符号化後の符号化ストリームのビットレートは35Mbpsとする。そして、その符号化ストリームが、ネットワークI/F154を介してホストコンピュータ500へ伝送される。またこのとき、動き解析部109では、対象画像を用いて動き解析処理が行われるため、HMD150からホストコンピュータ500へ送られる動きベクトルは、伝送したフレームに対応するもののみとなる。このため、フレームレートが60fpsのときの動きベクトルの伝送に必要なビットレートが5.28Mbpsであった場合、フレームレートが30fpsに落とされたときには、動きベクトルの伝送に必要なビットレートは半分の2.64Mbpsとなる。
このように、第3の実施形態では、ネットワークの伝送品質が不安定なときに、伝送される映像データについて間引き処理を実行してフレームレートを落とすことにより、安定的に映像データと動きベクトルをホストコンピュータ500へ伝送可能としている。
そして、ホストコンピュータ500において、CPU506は、伝送されてきた符号化ストリームと動きベクトルを復号し、その復号した動きベクトルを基にCG画像を生成する。また、グラフィックプロセッサ507は、符号化ストリームが復号された映像を基にベース画像を生成し、そのベース画像のCG画像を重畳させてCG合成画像を生成する。CPU506は、その生成されたCG合成画像のデータを符号化して、ネットワークI/F505に送り、無線ネットワークを介してHMD150に伝送させる。このときのHMD150は、伝送されてきたCG合成画像の符号化ストリームを画像復号部152に復号させ、その復号されたCG合成画像データをグラフィックプロセッサ106に送る。グラフィックプロセッサ106は、その復号されたCG合成画像データを処理してディスプレイ107に送る。
また、本実施形態において、ネットワーク品質計算部153が利用する通信品質の指標は、例えばBER(Bit Error Rate:ビット誤り率)を用いるものとする。通常、無線ネットーワークシステムでは、LDPC(Low Density Paritiy Check)などの誤り訂正機能を有し、データを冗長化することによって、一定程度ビットに誤りが存在しても回復できる。回復可能な誤りの度合いは、データを冗長化した度合いによる。無線ネットーワークシステムは、ネットワーク品質が低下し、ビットの誤り率が増えると、誤り訂正におけるビットの冗長度を上げる。そのため、伝送可能な実データのレートは低下することになる。そこで、本実施形態では、ネットワーク品質計算部153がBERを監視し、CPU103は、そのBERが、映像を60fpsで伝送することが不可能となる比率に達した場合、60fpsの伝送が不可能と判断する。なお、60fpsの伝送が不可能となる比率は、システムとして、ネットワーク品質の低下による入力データ不足により処理が停止する度合いが、例えば100時間に1回となる値を事前に測定し、決めておくものとする。
なお、本実施形態において、ネットワーク品質計算部153が利用する通信品質の指標は、ネットワーク品質を測定できるものであればよく、前述したBERには限定されない。通信品質の指標は、例えば、PER(Packet Error Rate:パケット誤り率)、又はBLER(Block Error Rate:ブロック誤り率)を用いてもよい。また、ネットワーク品質計算部153は、チャネルを共有する端末がネットワークに接続された場合、それを感知して、その感知結果の情報をCPU103に出力してもよい。この場合のCPU103は、その検知結果を基に、伝送可能な帯域が低下して映像の60fps伝送ができないと判断した場合、前述したように映像のフレームレートを落とすようにしてもよい。
これらの通信品質の指標の計算は、ネットワーク品質計算部153でなく、CPU103が行ってもよい。また、ホストコンピュータ500側で通信指標の計算を行い、この指標の情報、或いは、60fps伝送が可能か否かの判定結果をHMD150との間で共有する構成であってもよい。なお、本実施形態において、CPU103は、通信品質が回復したと判断した場合には、画像の間引き処理を止めて、通常動作に復帰するものとする。
また、本実施形態では、映像をH.264で符号化して伝送するものとして説明したが、これに限定されず、JPEGを使って画像を符号化してもよい。この例でもαチャンネルが存在する場合には同様に圧縮する。また、IEEE802.11adなどの広帯域の無線規格を用いて、非圧縮の映像を伝送してもよい。
本実施形態において、フレームレートが変更された場合、その変更されたフレームレートを伝える方法には様々な方法があるが、本実施形態では以下の第1の通知方法と第2の通知方法の2つの通知方法の何れかを用いる。
第1の通知方法は、H.264のストリーム、又は、RTP(RFC3550)、MPEG Transport Stream(ISO/IEC standard 13818−1)のタイムスタンプを利用する方法である。すなわち、H.264のストリーム、又は、RTP(RFC3550)、MPEG Transport Streamは、映像の経過時間を示すタイムスタンプを表現する機能を有している。この場合、60fpsの映像伝送時には16ミリ秒ごとにタイムスタンプを打ち、30fpsの映像伝送時には33ミリ秒ごとにタイムスタンプを打つことにより、フレームの間引きを表現することができる。したがって、このタイムスタンプにより、フレームレートが変更されたことを伝えることが可能となる。
第2の通知方法は、ヘッダ情報に含まれるフレームレート情報を変更する方法である。H.264の場合には、フレームレート情報はSequence Parameter Setに含まれる。このフレームレート情報を変更することで、フレームレートが変更されたことを伝えることが可能となる。
また、第3の実施形態は、例えば、CG描画用のコマンドとテクスチャ画像を、ネットワークを介して送信し、HMD150のグラフィックプロセッサ106がそれらコマンドとテクスチャ画像を取得してCG画像を描画する構成でもよい。一般に、コンピュータ用のグラフィックプロセッサと、HMD等の組み込み用のグラフィックプロセッサとでは、前者の方が同じ時間でより緻密なCG画像を描画することができる。また、緻密な画像ほど多くのCG描画用コマンドを発行する必要がある。このことから、より緻密なCG画像を描画する場合には、ホストコンピュータ500でCG画像を生成する。一方、CG画像に緻密性が求められず少ない帯域でデータ送信する場合には、ホストコンピュータ500からCG描画用コマンドとテクスチャをHMD150へ送信する。これにより、コマンドとテクスチャを受信したHMD150は、内部でCG画像を描画することができる。
図6は、第3の実施形態のシステムにおける一連の動作を示すフローチャートであり、前述したようにネットワーク品質に応じてフレームレートを制御するHMD150側の処理の流れを示している。なお、図6のフローチャートにおいて、前述した図2のフローチャートと同じ処理には同じ参照符号を付して、その詳細な説明については省略する。
図6のフローチャートにおいて、S203の後、CPU103は、S601に処理を進める。S601では、HMD150のCPU103は、ネットワーク品質計算部153からのネットワーク品質情報を基に、ネットワーク品質は十分か否かを判定する。具体的には、CPU103は、前述したBERが所定の閾値より大きい場合に、ネットワーク品質が不十分と判定し、BERが所定の閾値より小さい場合にはネットワーク品質は十分であると判定する。なお、前述したように、BERの代わりに、PER、BLERを使ってネットワーク品質の判定を行ってもよい。
S601において、CPU103は、ネットワーク品質が十分であると判定した場合にはS605に処理を進め、S605ではフレーム番号n+1の画像を取得した後、S604に処理を進める。そして、S604では、CPU103は、前述したように画像符号化部151に60fpsで符号化(フレーム番号n,n+1の各画像データの符号化)を行わせて左右両眼用の映像データの符号化ストリームを生成する。このとき、前述したタイムスタンプは、16msずつ増加するタイムスタンプとなされる。なお、前述したようにヘッダ情報にフレームレートが60fpsであることを示す情報を埋め込んでもよい。S604の後、CPU103は、S607に処理を進める。
一方、S601において、ネットワーク品質が不十分であると判定した場合、CPU103は、S602に処理を進める。S602では、CPU103は、画像符号化部151に30fpsで符号化(間引かれた後のフレーム番号nの画像データの符号化)を行わせて符号化ストリームを生成させる。このとき、前述したタイムスタンプは、33msずつ増加するタイムスタンプとする。なお、ヘッダ情報にフレームレートが30fpsである情報を埋め込んでもよい。S602の後、CPU103は、S607に処理を進める。
S607では、CPU103は、前述した動き解析結果の動き情報と符号化ストリームを、ネットワークI/F154を介してホストコンピュータ500へ伝送させる。このS607の後、CPU103は、図6のフローチャートの処理を終了する。
図7は、第3の実施形態のシステムにおける一連の動作を示すフローチャートであり、ネットワーク品質に応じてフレームレートが制御される場合のホストコンピュータ500側の処理の流れを示している。図7のフローチャートは、ホストコンピュータ500がベース画像を生成して、そのベース画像にCG画像を重畳してCG合成画像を生成し、そのCG合成画像を符号化してHMD150に伝送する場合の流れを示している。
図7のフローチャートにおいて、ホストコンピュータ500のCPU506は、S701において、フレーム番号nの画像データを取得する。ここで、図7のフローチャートの場合の画像データの取得とは、ネットワークI/F505を介して受信した符号化ストリームを、CPU506が復号してRAM508に記憶させた画像データを取得することを意味するものとする。S701の後、CPU506は、S702に処理を進める。
S702において、CPU506は、ネットワークI/F505を介して、HMD150からフレーム番号nに対応する動き解析結果の動き情報を取得する。S702の後、CPU506は、S703に処理を進める。
S703では、CPU506は、前述の図2のS204と同様な処理により、動き解析結果の情報に基づいて三次元空間マップを生成する。S703の後、CPU103は、S704に処理を進める。
S704では、CPU506は、映像が60fpsのフレームレートか否かを判定する。S704において、CPU506は、60fpsのフレームレートであると判定した場合にはS706に処理を進め、60fpsのフレームレートでないと判定した場合にはS705に処理を進める。S704におけるフレームレートの判定方法は、前述したようなフレームに付加されたタイムスタンプをみること、或いは、ヘッダに記載されたフレームレートを読み取ることにより行う。
S705の処理に進んだ場合、CPU506は、フレーム番号nをベース画像とする。S705の後、CPU506は、S708に処理を進める。また、S706の処理に進んだ場合、CPU506は、フレーム番号n+1の画像データを取得する。このS706における画像データの取得は、S701の場合と同様に、ネットワークI/F505を介して受信した符号化ストリームを、CPU506が復号してRAM508に記憶させた画像データを取得することを意味する。S706の後、CPU506は、S707に処理を進める。
S707では、CPU506は、前述の図2のS206と同様な処理により、S701で取得したフレーム番号nの画像と、S706で取得したフレーム番号n+1の画像とを合成させてベース画像を生成させ、その後、S708に処理を進める。S708において、CPU506は、前述の図2のS207と同様な処理により、予めRAM508等に読み込んでおいたCGオブジェクトデータを取得し、その後、S709に処理を進める。
S709では、CPU506は、前述の図4のS208と同様な処理により、S703で生成された三次元空間マップ情報と、S708で取得されたCGオブジェクトデータとを用い、フレーム番号nの画像に対応した二次元空間に射影されるCG画像を生成する。S709で生成されたCG画像のデータは、グラフィックプロセッサ507に送られる。S709の後、CPU506は、S710に処理を進める。
S710では、CPU506は、フレーム番号nとフレーム番号n+2の画像間の画面全体の動きを示す前述したグローバルモーションを求める。この図7のフローチャートの場合、画像から画素毎の動きベクトルを算出し、その動きベクトルの水平成分と垂直成分のヒストグラムを求め、それぞれの最頻値をグローバルモーションの二次元ベクトルを表現する動きベクトルの水平と垂直の成分とする。S710の後、CPU506は、S711に処理を進める。
S711では、CPU506は、グラフィックプロセッサ507を制御して、ベース画像にCG画像を重畳させてCG合成画像を生成させる。具体的には、グラフィックプロセッサ507は、前述の図4のS211と同様な処理により、CG画像の三次元空間内の位置をグローバルモーションに相当する移動量の分、位置を補正して、ベース画像に重畳することによりCG合成画像を生成する。S711の後、CPU506は、S712に処理を進める。
S712では、CPU506は、グラフィックプロセッサ507にて生成されたCG合成画像データを符号化して、ネットワークI/F505を介してHMD150に伝送する。このS712の後、CPU506は、図7のフローチャートの処理を終了する。
なお、本実施形態では、HMD150が60fpsの映像データを符号化してホストコンピュータ500へ伝送する例を挙げたが、この例に限定されるものではない。例えば、HMD150で120fpsのフレームレートで撮像された映像データをホストコンピュータ500へ伝送するようにしてもよい。この場合、ネットワークの伝送品質が低下したときには、120fpsの映像データに間引き処理を行って60fpsのフレームレートに落としてからホストコンピュータ500に伝送する。さらに、それでもネットワーク品質が低い場合には、更に画像を間引いて30fpsにフレームレートを落として伝送してもよい。その他、本実施形態では、動き解析処理をHMD150側で行っているがこれには限定されず、ホストコンピュータ500側において、復号した画像を使って動き解析をしてもよい。
また、第3の実施形態では、ホストコンピュータ500は、ベース画像とCG画像を合成したCG合成画像データをHMD150へ伝送する例を挙げたが、CG合成画像の生成を行わずにCG画像とベース画像のデータを伝送してもよい。また、ホストコンピュータ500はCG画像のみ生成し、ベース画像は前述の第1、第2の実施形態の場合と同様にHMD150により生成されてもよい。ただし、例えばHMD150側でベース画像を生成し、ホストコンピュータ500から伝送されたCG画像を重畳する例の場合、例えばネットワーク品質によりフレームレートが落とされることでCG画像とベース画像のフレームレートが異なることがある。例えばベース画像が60fpsでCG画像が30fpsであった場合に、それらからCG合成画像を生成する方法としては以下のような方法が考えられる。一例として、60fpsのベース画像に30fpsのCG画像を重畳する方法としては、ベース画像の連続するフレーム画像に同じCG画像を二回重畳する方法が考えられる。ただしこの場合、例えばHMD150のカメラがパンされているときには、背景は滑らかに動いているにもかかわらず、重畳されたCG画像の移動のレートが低いため、ジャダーが目立つ映像となる。このため、本実施形態では、ベース画像を生成する際に、撮像画像の連続するフレーム画像を前述した第1、第2の実施形態の例から更に加算平均により合成して30fps化する。そして、30fps化により生成されたベース画像に対してCG画像を重畳することにより、背景(ベース画像)とCG画像の動きの違いによる違和感をなくし、より自然な映像を生成する。なおこのとき、第2の実施形態で説明したように、CG画像の位置を補正して、その位置補正後のCG画像を合成してもよい。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100,120,150:HMD、101:バス、102:撮像部、103,506:CPU、104,508:RAM、105:画像フィルタ部、106,507:グラフィックプロセッサ、107:ディスプレイ、108:フラッシュメモリ、109:動き解析部、110:三次元空間マップ生成部、111:CG位置計算部、112:CG生成部、113:慣性センサ、151:画像符号化部、152:画像復号部、153:ネットワーク品質計算部、154,505:ネットワークI/F、509:外部ストレージ、500:ホストコンピュータ

Claims (14)

  1. 連続した撮像により取得された複数の画像を画像解析の対象画像と非対象画像とに分類する制御手段と、
    前記対象画像を使って画像解析を行って動き情報を生成する動き生成手段と、
    を有することを特徴とする画像処理装置。
  2. 前記制御手段は、前記連続した撮像により取得された複数の画像を、所定の周期ごとに前記対象画像に分類することを特徴とする請求項1に記載の画像処理装置。
  3. 画像のエッジ保存性を有するフィルタ処理を行うフィルタ手段を有し、
    前記フィルタ手段は前記対象画像に対して前記フィルタ処理を施すことを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記動き生成手段は、前記フィルタ処理が施された後の前記対象画像の画像解析を行って前記動き情報を生成することを特徴とする請求項3に記載の画像処理装置。
  5. 前記動き情報を基に、前記撮像を行っているカメラの位置と姿勢の情報を生成して、前記位置と姿勢の情報からCGオブジェクトの描画位置を決める位置生成手段と、
    前記描画位置に前記CGオブジェクトが配置されたCG情報を生成するCG生成手段と、
    を有することを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  6. 前記撮像された画像と前記CG情報とを用いてCG合成画像を生成する画像合成手段を有することを特徴とする請求項5に記載の画像処理装置。
  7. 前記画像合成手段は、前記対象画像と前記非対象画像とを合成した画像に対し、前記CG情報によるCG画像を重畳して、前記CG合成画像を生成することを特徴とする請求項6に記載の画像処理装置。
  8. 前記位置生成手段は、前記対象画像と前記非対象画像とが合成された合成画像の時間軸上の中心位置に応じて、前記CGオブジェクトを描画する位置を補正することを特徴とする請求項7に記載の画像処理装置。
  9. 前記撮像を行っているカメラの動きを検出する検出手段を有し、
    前記位置生成手段は、前記検出されたカメラの動きの情報に基づいて、前記CGオブジェクトの描画位置を補正することを特徴とする請求項5乃至8の何れか1項に記載の画像処理装置。
  10. 前記複数の画像のデータと動き情報とを、情報処理装置へ伝送する請求項1乃至4の何れか1項に記載の画像処理装置と、
    前記動き情報を基に、前記撮像を行っているカメラの位置と姿勢の情報を生成し、前記位置と姿勢の情報からCGオブジェクトの描画位置を決め、前記描画位置に前記CGオブジェクトが配置されたCG情報を前記撮像された画像に重畳したCG合成画像のデータを、前記画像処理装置へ伝送する情報処理装置と、
    を有することを特徴とする画像処理システム。
  11. 前記画像処理装置の制御手段は、前記情報処理装置との間の伝送品質に応じて、前記複数の画像を前記対象画像に分類する割合を制御し、前記割合に応じて、前記情報処理装置へ伝送する前記複数の画像のデータと動き情報を制御することを特徴とする請求項10に記載の画像処理システム。
  12. 前記画像処理装置の制御手段は、前記伝送品質が所定の閾値より低下する場合には、前記複数の画像を前記対象画像に分類する際の割合を下げることを特徴とする請求項11に記載の画像処理システム。
  13. 連続した撮像により取得された複数の画像を画像解析の対象画像と非対象画像とに分類する制御ステップと、
    前記対象画像を使って画像解析を行って動き情報を生成する動き生成ステップと、
    を含むことを特徴とする画像処理装置の画像処理方法。
  14. コンピュータを、請求項1乃至9の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2016098065A 2016-05-16 2016-05-16 画像処理装置、画像処理方法、プログラム Pending JP2017207818A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016098065A JP2017207818A (ja) 2016-05-16 2016-05-16 画像処理装置、画像処理方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016098065A JP2017207818A (ja) 2016-05-16 2016-05-16 画像処理装置、画像処理方法、プログラム

Publications (1)

Publication Number Publication Date
JP2017207818A true JP2017207818A (ja) 2017-11-24

Family

ID=60417086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016098065A Pending JP2017207818A (ja) 2016-05-16 2016-05-16 画像処理装置、画像処理方法、プログラム

Country Status (1)

Country Link
JP (1) JP2017207818A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020052979A (ja) * 2018-09-28 2020-04-02 キヤノン株式会社 情報処理装置およびプログラム
JP2020190903A (ja) * 2019-05-21 2020-11-26 キヤノン株式会社 画像処理装置および画像処理方法およびプログラム
WO2021030936A1 (zh) * 2019-08-16 2021-02-25 影石创新科技股份有限公司 动态控制视频编码码率的方法、智能设备和运动相机
JP2021530817A (ja) * 2018-07-24 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. 画像ディスプレイデバイスの位置特定マップを決定および/または評価するための方法および装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530817A (ja) * 2018-07-24 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. 画像ディスプレイデバイスの位置特定マップを決定および/または評価するための方法および装置
US11687151B2 (en) 2018-07-24 2023-06-27 Magic Leap, Inc. Methods and apparatuses for determining and/or evaluating localizing maps of image display devices
JP7309849B2 (ja) 2018-07-24 2023-07-18 マジック リープ, インコーポレイテッド 画像ディスプレイデバイスの位置特定マップを決定および/または評価するための方法および装置
JP2020052979A (ja) * 2018-09-28 2020-04-02 キヤノン株式会社 情報処理装置およびプログラム
JP7406875B2 (ja) 2018-09-28 2023-12-28 キヤノン株式会社 情報処理装置およびプログラム
JP2020190903A (ja) * 2019-05-21 2020-11-26 キヤノン株式会社 画像処理装置および画像処理方法およびプログラム
JP7329964B2 (ja) 2019-05-21 2023-08-21 キヤノン株式会社 画像処理装置および画像処理方法およびプログラム
WO2021030936A1 (zh) * 2019-08-16 2021-02-25 影石创新科技股份有限公司 动态控制视频编码码率的方法、智能设备和运动相机

Similar Documents

Publication Publication Date Title
US10003768B2 (en) Apparatus and methods for frame interpolation based on spatial considerations
US20200051269A1 (en) Hybrid depth sensing pipeline
US8330801B2 (en) Complexity-adaptive 2D-to-3D video sequence conversion
US10425582B2 (en) Video stabilization system for 360-degree video data
US8045825B2 (en) Image processing apparatus and method for composition of real space images and virtual space images
US9710923B2 (en) Information processing system, information processing device, imaging device, and information processing method
JP6158929B2 (ja) 画像処理装置、方法及びコンピュータプログラム
US9088772B2 (en) Image-capturing apparatus
KR101801749B1 (ko) 3차원 복원을 위한 다중시점 영상 디블러링 방법, 이를 수행하기 위한 기록 매체 및 장치
US20120249826A1 (en) Image selection device and image selecting method
CN105190688A (zh) 用于查看图像的方法和装置
US20120169840A1 (en) Image Processing Device and Method, and Program
US10535193B2 (en) Image processing apparatus, image synthesizing apparatus, image processing system, image processing method, and storage medium
US11068699B2 (en) Image processing device, image processing method, and telecommunication system to generate an output image for telecommunication
JPWO2009051065A1 (ja) 画像生成方法、装置、およびそのプログラム並びにプログラムを記録した記録媒体
US10412374B2 (en) Image processing apparatus and image processing method for imaging an image by utilization of a pseudo image
JP2017207818A (ja) 画像処理装置、画像処理方法、プログラム
JP5755571B2 (ja) 仮想視点画像生成装置、仮想視点画像生成方法、制御プログラム、記録媒体、および立体表示装置
KR20120082336A (ko) 배경 픽셀 확장 및 배경 우선 패치 매칭을 사용하는 멀티 뷰 렌더링 장치 및 방법
JP6148154B2 (ja) 画像処理装置及び画像処理プログラム
JP2017055397A (ja) 画像処理装置、画像合成装置、画像処理システム、画像処理方法、及びプログラム
US20230290061A1 (en) Efficient texture mapping of a 3-d mesh
JP4930304B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記録媒体
US20230274401A1 (en) Advanced temporal low light filtering with global and local motion compensation
CN111416937B (zh) 图像处理方法、装置、存储介质及移动设备