JP2018032112A - データ処理装置、データ処理方法およびコンピュータプログラム - Google Patents

データ処理装置、データ処理方法およびコンピュータプログラム Download PDF

Info

Publication number
JP2018032112A
JP2018032112A JP2016162289A JP2016162289A JP2018032112A JP 2018032112 A JP2018032112 A JP 2018032112A JP 2016162289 A JP2016162289 A JP 2016162289A JP 2016162289 A JP2016162289 A JP 2016162289A JP 2018032112 A JP2018032112 A JP 2018032112A
Authority
JP
Japan
Prior art keywords
block
point
data
blocks
point cloud
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.)
Granted
Application number
JP2016162289A
Other languages
English (en)
Other versions
JP6637855B2 (ja
Inventor
大輔 中田
Daisuke Nakada
大輔 中田
高宏 中山
Takahiro Nakayama
高宏 中山
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.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
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 Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2016162289A priority Critical patent/JP6637855B2/ja
Priority to EP17843459.3A priority patent/EP3503039A4/en
Priority to US16/318,019 priority patent/US11227357B2/en
Priority to PCT/JP2017/029405 priority patent/WO2018037976A1/ja
Publication of JP2018032112A publication Critical patent/JP2018032112A/ja
Application granted granted Critical
Publication of JP6637855B2 publication Critical patent/JP6637855B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】点群を用いたデータ処理の効率を高める。【解決手段】マスタノード32は、空間の外観を複数の点の集合により表した点群であって、上記空間を分割した複数のブロックのいずれかに各点が属する点群を取得する。マスタノード32は、複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する。マスタノード32は、複数のブロックのうち優先度が高いブロックの処理を、優先度が低いブロックの処理より優先的に実行する。【選択図】図3

Description

この発明は、データ処理技術に関する。
現実空間を点群(「ポイントクラウド」とも呼ばれる。)としてキャプチャし、その点群を用いて現実空間の様子を示す画像を生成することが行われてきている。
特開2014−216006号公報
点群により生成される画像の品質は点群中の点の数に依存するが、点の数に応じて描画処理等の負荷も高まる。本発明は、こうした課題に鑑みてなされたものであり、主たる目的は、点群を用いたデータ処理の効率を高めるための技術を提供することである。
上記課題を解決するために、本発明のある態様のデータ処理装置は、空間の外観を複数の点の集合により表した点群であって、空間を分割した複数のブロックのいずれかに各点が属する点群を取得する点群取得部と、複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する優先度決定部と、優先度決定部により決定された優先度に応じて複数のブロックを処理する点群処理部と、を備える。
本発明の別の態様は、データ処理方法である。この方法は、空間の外観を複数の点の集合により表した点群であって、空間を分割した複数のブロックのいずれかに各点が属する点群を取得するステップと、複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定するステップと、決定するステップで決定された優先度に応じて複数のブロックを処理するステップと、をコンピュータが実行する。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、点群を用いたデータ処理の効率を高めることができる。
実施例における点群処理方法の原理を示す図である。 変形例における点群処理方法の原理を示す図である。 実施例の画像処理システムの構成を示す図である。 図3のマスタノードの機能構成を示すブロック図である。 実施例の画像処理システムの動作を示すフローチャートである。 撮影空間の分割を模式的に示す図である。 撮影空間に対する可視判定を模式的に示す図である。 マスタノードから描画ノードへのデータの送信態様を示す図である。 フレーム画像の生成を模式的に示す図である。 変形例の描画ノードの機能構成を示すブロック図である。 複数の描画ノードの負荷を平準化する方法を模式的に示す図である。
実施例を詳細に説明する前に実施例の概要を説明する。現実空間を複数台のカメラで撮影し、複数台のカメラが出力した撮影画像を合成等することにより、現実空間の外観(様子)を点の集合により表した点群を生成することが行われている。また、その点群を用いて現実空間を示す画像を生成することが行われている。点群における点の数が増えるほど、点群から生成される画像の品質は向上するが、その反面、描画処理等の負荷も高まる。
近年では、1億個を超える点のデータを含む点群が生成されることもある。例えば、1つのフレームに対応する点群では、各点のデータとして、空間座標を表すデータとして12バイト(XYZの座標値各4バイト)、色彩を表現するデータとして4バイト(RGBAの各1バイト)を含み、合計16バイトのデータを含むことがある。16バイト×1億点は、約1.6ギガバイトに達する。このように、点群に大量の点のデータが含まれる場合、点群の通信時間や処理時間が非常に長くなってしまい、描画処理に遅延が生じることがある。
そこで実施例では、点群内の各点に対して優先順位付けを行い、重要な点の情報ほど優先的に処理するデータ処理方法を提案する。これにより、点群内の大量の点を効率的に処理することを実現する。
図1の(a)(b)は、実施例における点群処理方法の原理を示す。図1の(a)で示すように、実施例の点群10は複数の領域(以下「ブロック」とも呼ぶ。)に分割される。実際の点群10は、複数台のカメラにより撮影された3次元空間の外観を示すものであり、点群10が示す3次元空間を分割した個々のブロックも3次元空間となるが、図ではこれを簡素化し、2次元のブロックを示している。ブロック12は5個の点を含み、ブロック14は7個の点を含み、ブロック16は4個の点を含み、ブロック18は2個の点を含む。
点群には点の局所性(偏在性)があり、空間を分割することで、点の数が相対的に少ないブロック(例えばブロック18)が生じる。本発明者は、点の数が相対的に少ないブロックは、空間全体に対する重要度が低いと考えた。また本発明者は、空間に相当数の点が存在する場合、少量の点の情報が画像に反映されなくても、画像全体への影響は少なく、ユーザに違和感を抱かせにくいと考えた。そこで、実施例の画像処理システムでは、内包する点の数が少ないブロックに関する通信または処理の優先度を低くし、具体的には通信または処理の順番を後回しにする。
図1の管理装置20は、点群10が示す空間から複数のブロックを切り出し、処理装置22は、管理装置20により切り出された複数のブロックに基づいて所定のデータ処理(例えば描画処理)を実行する。図1の(b)で示すように、管理装置20は、複数のブロックを処理装置22へ順次送信し、点の個数が多いブロックほど早いタイミングで送信する。管理装置20は、図1の(a)で示すブロックを切り出した場合、ブロック14、ブロック12、ブロック16、ブロック18の順に処理装置22へ提供する。
図2は、変形例における点群処理方法の原理を示す。処理装置22は、複数のブロックに基づいて所定のデータ処理を実行する場合に、点の個数が多いブロックほど早いタイミングでデータ処理を実行する。例えば図1の(a)で示す4つのブロックに対して、処理装置22は、ブロック14、ブロック12、ブロック16、ブロック18の順に、各ブロックに基づくデータ処理を実行する。ブロックに基づくデータ処理は、ブロック内の点のデータに基づいて当該ブロックの外観を示す画像を生成する描画処理を含み、また、ブロックに含まれる点のデータに基づく衝突判定等、種々の演算処理を含む。
図1および図2で示した点群処理方法によると、処理装置22において、相対的に重要度が高いブロックの処理を先に実行させることができ、相対的に重要度が高いブロックの処理における遅延の発生を回避しやすくなる。また、点群の処理を、ブロック単位で、かつ、優先順位をつけて実行することにより、大量の点を含む点群を効率的に処理することを実現できる。
なお、図1および図2で示した点群処理方法では、内包する点の個数が多いブロックほど高い優先順位を付与することとした。変形例として、点の密度(例えば点の個数/ブロックの体積)が高いブロックほど高い優先順位を付与してもよい。また、点群内(撮影空間内)の点の総数に占めるブロック内の点の個数の割合(例えばブロック内の点の個数/点群内の点の総数)が大きいブロックほど高い優先順位を付与してもよい。
以下、実施例の構成を詳細に説明する。図3は、実施例の画像処理システムの構成を示す。画像処理システム30は、マスタノード32、描画ノード34で総称される描画ノード34a、描画ノード34b、描画ノード34c、表示制御ノード36、表示デバイス38を備える。これらの各装置は、LAN・WAN・インターネット等を含む通信網を介して接続される。マスタノード32および描画ノード34は、第1の外部装置(不図示)から入力された点群に基づいて画像を生成し、生成した画像データを第2の外部装置(表示制御ノード36に相当する装置等)へ提供するクラウドシステムを構成してもよい。
マスタノード32は、図1(b)の管理装置20に対応するデータ処理装置である。マスタノード32は、点群10が示す空間を複数のブロックに分割し、点群10に含まれる各点のデータをブロック単位で描画ノード34a、描画ノード34b、描画ノード34cのそれぞれへ送信する。
描画ノード34a、描画ノード34b、描画ノード34cのそれぞれは、図1(b)および図2の処理装置22に対応するデータ処理装置である。描画ノード34は、既知の方法により、点群内の各点のデータに基づいてビットマップ画像のデータを生成する。なお、画像処理システム30における描画ノード34の台数に制限はない。例えば1台であってもよく、4台以上であってもよい。
描画ノード34a、描画ノード34b、描画ノード34cは、マスタノード32から受信したブロック単位の点データ(各ブロックに含まれる点のデータ)に基づいて、ブロックの外観を示す画像(以下「個別画像」とも呼ぶ。)を生成する。同一の空間から切り出された複数のブロックに基づく複数の個別画像は、表示デバイス38において同時に表示されるべき画像である。言い換えれば、ある時点で表示デバイス38に表示される画像(例えば1つのフレームの画像)における異なる部分を構成する画像である。
表示制御ノード36は、描画ノード34a、描画ノード34b、描画ノード34cの各々で描画された個別画像を合成することにより、表示デバイス38に表示させるべき画像(以下「フレーム画像」とも呼ぶ。)を生成する。表示制御ノード36は、生成したフレーム画像を表示デバイス38に表示させる。表示制御ノード36は、据置型のデータ処理装置(例えばPC、ゲーム機)であってもよく、表示デバイス38は、ヘッドマウントディスプレイ(HMD)であってもよい。また、表示制御ノード36と表示デバイス38は、携帯型のゲーム機等として同一筐体に統合されてもよい。
図4は、図3のマスタノード32の機能構成を示すブロック図である。マスタノード32は、制御部40、記憶部42、通信部44を備える。制御部40は、点群を用いた画像生成を管理するためのデータ処理を実行する。記憶部42は、制御部40により参照または更新されるデータを記憶する記憶領域である。通信部44は、所定の通信プロトコルにしたがって外部装置と通信する。制御部40は、通信部44を介して複数の描画ノード34のそれぞれとデータを送受する。
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのCPU・メモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
例えば、制御部40の各ブロックの機能がコンピュータプログラム(点群管理プログラム)として実装され、点群管理プログラムがマスタノード32のストレージにインストールされてもよい。そしてマスタノード32のCPUが、点群管理プログラムをメインメモリへ読み出して実行することにより制御部40内の各ブロックの機能が発揮されてもよい。また、記憶部42は、マスタノード32のメインメモリやストレージにより実現されてもよい。
記憶部42は、空間データ記憶部46、ブロックデータ記憶部48、優先度記憶部50を含む。空間データ記憶部46は、複数のカメラにより撮影された空間であり、言い換えれば、描画ノード34により描画対象となり得る空間(以下「撮影空間」とも呼ぶ。)のデータを保持する。実施例における撮影空間のデータは、撮影空間の外観(様子、内容とも言える)を複数の点の集合によって表した点群のデータを含み、点群を構成する各点のデータをさらに含む。
点群を構成する各点のデータは、撮影空間内での位置を示す3次元の座標データと、色彩を示すデータを含む。3次元の座標データは、例えば、撮影空間内における絶対位置を示す横方向(X軸方向)の座標値、縦方向(Y軸方向)の座標値、奥行き方向(Z軸方向)の座標値の組み合わせであってもよい。また、色彩を示すデータは、例えばRGBAカラーモデルの値であってもよい。
なお、点群を構成する各点のデータは、法線に関するデータ(向き等)と表面の材質に関するデータ(テクスチャデータ等)をさらに含んでもよい。法線に関するデータを含むことで、描画ノード34のレンダリング処理における光の入射角や反射角の計算を支援できる。それとともに、描画ノード34は、表と裏を区別でき、裏側の描画処理をスキップすることができる。また、表面の材質に関するデータを含むことで、描画ノード34のレンダリング処理における光の反射率や吸収率等の計算を支援できる。
ブロックデータ記憶部48は、撮影空間を分割した結果としての複数のブロック(個別領域)であり、互いに撮影空間の一部を構成する複数のブロックのデータを保持する。各ブロックのデータは、ブロックの識別情報と、ブロックの境界情報(例えばブロックの頂点の座標値)、ブロックに属する1個以上の点のデータ(上述の座標データ、色彩データ等)を含む。優先度記憶部50は、複数のブロックのそれぞれに対して付与された優先順位を示すデータを保持する。
制御部40は、空間分割部52、点群取得部54、可視判定部56、優先度決定部58、点群処理部60を備える。空間分割部52は、空間データ記憶部46に保持された撮影空間の点群データを読み出し、予め定められた分割アルゴリズムにしたがって撮影空間を分割する。空間分割部52は、分割の結果を示すデータとして、複数のブロックのデータであり、各ブロックに属する点のデータをブロックデータ記憶部48へ格納する。空間分割部52は、分割アルゴリズムとして、8分木(octree)、k−d木(k-d tree)等、公知のアルゴリズムを使用してもよい。
点群取得部54は、撮影空間を分割した複数のブロックのいずれかに各点が属するように設定された点群のデータを取得する。実施例では、点群取得部54は、複数のブロックのデータであって、複数のブロックのそれぞれに属する点のデータをブロックデータ記憶部48から読み込む。
可視判定部56は、ユーザの視点位置や視線方向、姿勢、画角等に応じて、撮影空間内の複数のブロックのうちどのブロックがユーザから視認されるかを判定する。ここでのユーザは、表示デバイス38(例えばHMD)を装着したユーザであってもよく、また、ユーザの視点位置に仮想的に配置された仮想カメラであってもよい。言い換えれば、可視判定部56は、撮影空間内の複数のブロックのうち描画処理の対象となるブロック(以下「描画対象ブロック」)を特定する。典型的には複数の描画対象ブロックを特定する。
優先度決定部58は、可視判定部56により特定された複数の描画対象ブロックのそれぞれに属する点の数に基づいて、各描画対象ブロックの優先度を決定する。実施例の優先度決定部58は、複数の描画対象ブロックのそれぞれに属する点の数を計数し、内包する点の数が多い描画対象ブロックほど高い優先順位を付与する。例えば、図1(a)の4つのブロックに対して、優先度決定部58は、ブロック14、ブロック12、ブロック16、ブロック18の順に高い優先順位を付与する。
点群処理部60は、優先度決定部58により決定された優先度に応じた順序で複数の描画対象ブロックを処理し、複数のブロックのうち優先度が高いブロックの処理を、優先度が低いブロックの処理より優先的に実行する。実施例の点群処理部60は、複数の描画対象ブロックのうち優先順位が相対的に高い描画対象ブロックの点に基づくデータ処理を、優先順位が相対的に低いブロックの点に基づくデータ処理より優先的に実行する。例えば、図1(a)の4つのブロックに対して、点群処理部60は、ブロック14の点データを最優先で処理し、以降、ブロック12、ブロック16、ブロック18の順に点データを処理する。
点群処理部60は、予め定められたタイミングまでに、複数の描画対象ブロックのうち一部の描画対象ブロックの処理を未完了である場合、それら一部の描画対象ブロックの処理をスキップする。言い換えれば、それら一部の描画対象ブロックの処理を未完了のまま、描画対象ブロックに対する処理を終了する。
実施例の点群処理部60は点群配信部62を含む。点群配信部62は、複数の描画対象ブロックうち第1の描画対象ブロックの点データを描画ノード34aへ送信し、第1の描画対象ブロックとは異なる第2の描画対象ブロックの点データを描画ノード34bへ送信する。さらに点群配信部62は、第1および第2の描画対象ブロックとは異なる第3の描画対象ブロックの点データを描画ノード34cへ送信する。ただし、点群配信部62は、複数の描画対象ブロックを順次送信し、その際に優先順位が高いブロックほど早いタイミングで送信する。
点群配信部62は、点群に基づく画像が表示される画面の複数の領域(個々の領域は画面の一部を構成する)と、複数の描画ノード34(例えば描画ノード34a、描画ノード34b、描画ノード34c)との対応関係を保持する。点群配信部62は、複数の描画ノード34のそれぞれに対して、各ノードが対応付けられた画面領域で表示される描画対象ブロックの点データを送信する。言い換えれば、点群配信部62は、複数の描画ノード34のそれぞれに対して、各ノードが対応付けられた画面領域に少なくとも一部が含まれる描画対象ブロックの点データを送信する。
例えば、図1のブロック12(点の個数は5)の送信先が描画ノード34a、図1のブロック14(点の個数は7)の送信先が描画ノード34b、図1のブロック16(点の個数は4)の送信先が描画ノード34cであるとする。この場合、点群配信部62は、まずブロック14の点データを描画ノード34bへ送信し、次にブロック12の点データを描画ノード34aへ送信し、次にブロック16の点データを描画ノード34cへ送信する。
点群配信部62は、予め定められた配信タイミング(または描画タイミング)までに、複数の描画対象ブロックのうち一部の描画対象ブロックを描画ノード34へ未送信の場合、それら一部の描画対象ブロックの送信をスキップする。言い換えれば、それら一部の描画対象ブロックを描画ノード34へ送信しないまま描画対象ブロックに対する処理を終了する。この結果、マスタノード32と描画ノード34の通信状態によっては、優先度が低い描画対象ブロックに基づく画像は生成されない。
以上の構成による画像処理システム30の動作を説明する。図5は、実施例の画像処理システム30の動作を示すフローチャートである。実施例では、複数台のカメラ(不図示)および点群生成装置(不図示)が画像処理システム30の外部に設けられることとするが、画像処理システム30の内部に設けられてもよい。複数台のカメラは、同一空間を異なる向き、角度から並行して撮像する。点群生成装置は、複数台のカメラから出力された複数の画像に基づいて公知の手法により点群のデータを生成する。ここでは、1つの点群のデータが、表示デバイス38に表示される1フレームに対応することとする。
マスタノード32の空間データ記憶部46は、撮影空間を示すデータとして、点群生成装置により生成された点群のデータを保持する。すなわち空間データ記憶部46は、表示デバイス38に表示される複数のフレームに対応する複数の点群のデータを保持する。なお、点群生成装置は、複数台のカメラから出力された複数の画像に基づいて撮影空間の現在の様子を示す点群のデータをリアルタイムに生成し、生成した点群のデータを即時にマスタノード32の空間データ記憶部46へ格納してもよい。
図6は、撮影空間の分割を模式的に示す。マスタノード32の空間分割部52は、空間データ記憶部46に格納された撮影空間70を示す点群データを読み出し、所定の分割アルゴリズムにしたがって撮影空間70を複数のブロックに分割する(S10)。空間分割部52は、各ブロックの点データをブロックデータ記憶部48へ格納する。マスタノード32の点群取得部54は、ブロックデータ記憶部48に格納された各ブロックの点データを読み出す。図7は、撮影空間に対する可視判定を模式的に示す。マスタノード32の可視判定部56は、ユーザ71(または仮想カメラ)の視点位置や姿勢、視線方向にしたがって、撮影空間70内の複数のブロックの中でどのブロックがユーザ71から視認されるかを判定する。可視判定部56は、ユーザ71から視認される複数のブロックを描画対象ブロック72として特定する(S12)。
マスタノード32の優先度決定部58は、複数の描画対象ブロックのそれぞれに対して、内包する点の数が相対的に多いほど高い優先順位を付与する(S14)。図8は、マスタノード32から描画ノード34へのデータの送信態様を示す。マスタノード32の点群配信部62は、複数の描画対象ブロック72のそれぞれを対応する描画ノード34へ順次送信し、その際に、内包する点の個数が多い描画対象ブロック72ほど先に送信する(S16)。予め定められたフレームの描画タイミングに至ってなければ(S18のN)、S16に戻り、優先順位が低い描画対象ブロック72の送信を継続する。描画タイミングに至ると(S18のY)、以降の描画対象ブロック72の送信を中止する。
図5のS10〜S18で示したマスタノード32の処理は、1つのフレームの描画に係る処理である。マスタノード32は、複数のフレームに対応する複数の点群データに対して、S10〜S18の処理を繰り返す。マスタノード32は、S18のYが成立するとそれまでのフレームの処理を終了し、次のフレームの処理へ移行する。
複数の描画ノード34は、マスタノード32から受信した描画対象ブロック72に基づいて、撮影空間の一部の外観を示すビットマップ画像(以下「個別画像」とも呼ぶ。)を並行して生成する(S20)。例えば、フレーム画像を表示する画面を左上領域、左下領域、右下領域、右上領域の4領域に分割する場合、描画ノード34aは、画面の左上領域に該当するブロックの点データを受信して、画面の左上領域に表示すべき個別画像のデータを生成してもよい。また描画ノード34bは、画面の左下領域に該当するブロックの点データを受信して、画面の左下領域に表示すべき個別画像のデータを生成してもよい。また描画ノード34cは、画面の右下領域に該当するブロックの点データを受信して、画面の右下領域に表示すべき個別画像のデータを生成してもよい。複数の描画ノード34のそれぞれは、生成した個別画像のデータを表示制御ノード36へ送信する。
表示制御ノード36は、複数の描画ノード34と画面内の複数領域との対応関係にしたがって、複数の描画ノード34で分散して生成された個別画像を合成することにより、フレーム全体の画像(以下「フレーム画像」とも呼ぶ。)を生成する(S22)。図9は、フレーム画像の生成を模式的に示す。表示制御ノード36は、描画ノード34aで生成された個別画像74aを左上領域に配置し、描画ノード34bで生成された個別画像74bを左下領域に配置し、描画ノード34cで生成された個別画像74cを右下領域に配置し、他の描画ノード(不図示)で生成された個別画像74dを右上領域に配置したフレーム画像76を生成してもよい。表示制御ノード36は、フレーム画像のデータを表示デバイス38へ出力し、表示デバイス38にフレーム画像を表示させる(S24)。
既述したように、描画処理の対象となる点群は億単位の点を含むことがあり、通常のPC等のデバイス1台ではリアルタイムの描画が困難という問題があった。実施例の画像処理システム30では、複数の描画ノード(GPU)により描画処理を分散実行することで、大量の点データに基づく画像描画を実現できる。また、実施例の画像処理システム30によると、点群が示す撮影空間を分割した複数のブロックのうち点の数が少ないブロックについては、その通信または処理の優先度を低くし、例えば、通信または処理の順番を後回しにする。これにより、点群が大量の点データを含む場合でも、通信負荷を低減でき、また、処理負荷(描画処理の負荷等)を抑制できる。
また、実施例の画像処理システム30によると、点群全体に対する重要度が高いと考えられる、点の数が多いブロックの通信または処理を優先的に実行し、重要度が高いブロックの通信または処理の遅延を抑制できる。実施例の画像処理システム30では、ユーザの注目を集めやすいブロックを優先的に描画し、その一方、ユーザに気付かれにくいブロックについてはベストエフォートで描画することで効率化を実現する。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下変形例を説明する。
第1変形例を説明する。上記実施例の画像処理システム30では、図3のマスタノード32が、撮影空間を構成する複数のブロックに対する優先順位を決定し、優先順位が高いブロックのデータを優先的に描画ノード34へ送信した。変形例として、図2で示したように、図3の描画ノード34(描画ノード34a、描画ノード34b、描画ノード34cのうち少なくとも1つ)が、撮影空間を構成する複数のブロックに対する優先順位を決定し、優先順位が高いブロックのデータに基づく画像を優先的に生成してもよい。すなわち、複数のブロックの優先度に応じたデータ処理を、マスタノード32に代わって描画ノード34が実行してもよく、または、マスタノード32とともに描画ノード34が実行してもよい。
この変形例におけるマスタノード32は、点群により表された撮影空間を複数のブロックに分割して、複数のブロックの中からユーザにより視認されるブロックを描画対象ブロックとして検出してもよい。そして、優先順位を付与することなく、複数の描画対象ブロックの点データを1つの描画ノード34へ送信してもよい。また、マスタノード32は、複数の描画ノード34に対して、各ノードが描画を担当する領域に該当する描画対象ブロックの点データを順次もしくは並行して送信してもよい。
図10は、変形例の描画ノード34の機能構成を示すブロック図である。図10に示す制御部80、記憶部82、通信部84は、図4の制御部40、記憶部42、通信部44に対応する。また、図10に示す点群取得部90、優先度決定部92、点群処理部94は、図4の点群取得部54、優先度決定部58、点群処理部60に対応する。
点群取得部90は、マスタノード32から送信された複数の描画対象ブロックの点データを取得する。優先度決定部92は、複数の描画対象ブロックのそれぞれに属する点の数に基づいて、各描画対象ブロックの優先度を決定する。例えば、優先度決定部92は、複数の描画対象ブロックのそれぞれに属する点の数を計数し、内包する点の数が多い描画対象ブロックほど高い優先順位を付与する。
点群処理部94は描画部96を含む。描画部96は、マスタノード32から送信された複数の描画対象ブロックの点データに基づいて、複数の個別画像を順次生成する。その際に、描画部96は、優先順位が高い描画対象ブロックほど先に個別画像を生成する。画像提供部98は、描画部96により生成された個別画像のデータを表示制御ノード36へ送信する。
描画部96は、予め定められた描画タイミングまでに、複数の描画対象ブロックのうち一部の描画対象ブロックに基づく個別画像を未生成の場合、それら一部の描画対象ブロックに基づく個別画像の生成処理をスキップする。言い換えれば、それら一部の描画対象ブロックに基づく個別画像を生成しないまま描画対象ブロックに対する処理を終了する。この結果、描画処理の負荷によっては、優先度が低い描画対象ブロックに基づく画像が生成されないことがある。
本変形例の描画ノード34によると、点群が示す撮影空間を分割した複数のブロックのうち点の数が少ないブロックについては、そのブロックに基づく描画処理の優先度を低くする。これにより、点群が大量の点データを含む場合でも、描画処理の負荷を抑制できる。なお、本変形例の描画ノード34は、実施例ではマスタノード32の機能とした空間データ記憶部46、空間分割部52、可視判定部56をさらに備えてもよい。また、本変形例では描画ノード34の機能とした優先度決定部92はマスタノード32の機能とし、描画ノード34の描画部96は、マスタノード32が決定した優先順位にしたがって複数のブロックに基づく複数の個別画像を生成してもよい。
第2変形例を説明する。上記実施例のマスタノード32は、複数の描画ノード34のそれぞれに対して、各ノードが対応付けられた画面領域で表示される描画対象ブロックの点データを送信した。例えば、フレーム画像が表示される画面を4分割し、左上領域に該当する描画対象ブロックのデータを描画ノード34aへ送信し、左下領域に該当する描画対象ブロックのデータを描画ノード34bへ送信し、右下領域に該当する描画対象ブロックのデータを描画ノード34cへ送信した。
ここで撮影空間には点の偏在性があるため、常時同じ態様で画面を分割して描画対象ブロックの送信先を決定すると、特定の描画ノードに負荷が偏ることがある。例えば、ある描画ノードでは描画負荷が許容値を大幅に超える一方、別の描画ノードでは描画負荷が許容値を大幅に下回ると言う状況が生じうる。結果、負荷が集中した描画ノードでは、描画処理が遅延しやすくなる。そこで、変形例のマスタノード32は、各描画ノードの負荷ができるだけ均等になるように、各描画ノードの担当範囲を動的に調整する調整部(不図示)をさらに備える。調整部は、各描画ノードの負荷の分散が所定値以下になるように、各描画ノードの担当範囲を調整してもよい。
図11は、複数の描画ノードの負荷を平準化する方法を模式的に示す。ここでは、図3の描画ノード34a、描画ノード34b、描画ノード34cに加えて、第4の描画ノードとして描画ノード34d(不図示)が存在する。図11(a)に示すように、調整部は、フレーム画像を表示させる画面を4分割する。デフォルトでは、描画ノード34aが領域100の描画を担当し、描画ノード34bが領域102の描画を担当し、描画ノード34cが領域104の描画を担当し、描画ノード34dが領域106の描画を担当する。各領域の数字は、描画処理の負荷の大きさを示す。具体的には、各領域に含まれるブロック数を示すこととする。別の態様として、各領域の数字は、各領域に含まれる点の個数の比率を示すものでもよい。図11(a)の例では、素朴に画面を4等分すると、描画ノード34aに負荷が集中することになる。
各描画ノードにおいて許容される負荷の大きさ(例えば許容されるブロック数であり、以下「許容負荷」と呼ぶ。)が、予め「5」に定められたこととする。いずれかの領域の負荷が「5」を超える場合、調整部は、図11の(b)で示すように、負荷が最大の領域(該当するブロック数が最大の領域)を、その長辺軸に沿って2分割する。例えば、長辺の中点を結んで半分に分割してもよい。図11の(b)に示す1回目の分割では1つの領域の負荷が依然として「5」を超えるため、調整部は、図11の(c)で示すように、再度、負荷が最大の領域を2分割する。
各領域の負荷が許容負荷以下になった場合、調整部は、各領域の負荷と許容負荷との差を計算する。図11の(d)は、この計算結果を示している。図11の(e)で示すように、調整部は、許容負荷との差が所定値(ここでは4)以上の領域を、隣接する領域と統合する。図11の(f)は領域を統合した結果を示している。調整部は、各領域の負荷の分散が所定値(例えば「1.6」)以下になった場合に調整処理を終了する。マスタノード32の点群配信部62は、例えば、領域110に該当する描画対象ブロックのデータを描画ノード34aへ送信し、領域112に該当する描画対象ブロックのデータを描画ノード34bへ送信する。また、領域114に該当する描画対象ブロックのデータを描画ノード34cへ送信し、領域116に該当する描画対象ブロックのデータを描画ノード34dへ送信する。
図11の(a)における領域100〜領域106の分散は「13.5」である一方、図11の(f)における領域110〜領域116の分散は「1.5」に低下している。このように本変形例の態様によると、各描画ノードの負荷を平準化でき、特定のノードに負荷が集中すること、またその特定のノードで描画が遅延することを抑制できる。
第3変形例として、実施例の画像処理システム30の利用例を説明する。画像処理システム30に対する外部装置(外部システム)は、スタジアム等でなされるスポーツの様子を撮影して点群のデータを生成する。この外部装置は、生成した点群のデータを、通信網を介して、クラウドシステムとしての画像処理システム30へ送信する。画像処理システム30(ここではマスタノード32)は、実施例と同様に、点群のデータが示す空間を複数のブロックに分割し、内包する点の個数に基づいて各ブロックに優先度を付与する。画像処理システム30は、点群のデータをブロック単位にクライアント装置(進行中のスポーツの画像を表示するユーザ装置等)へ送信し、その際に、優先度が高いブロックのデータを先に送信する。
点の個数が多いブロックを先にクライアント装置へ届けるため、仮に通信に遅延が発生しても、点の個数が多いブロック、言い換えれば、情報が多い部分が所定のタイミングまでにクライアント装置へ配信される可能性を高めることができる。なお、点群のデータを生成する外部装置は、複数のブロックへの分割をさらに実行して、各ブロックの点データを画像処理システム30へ送信してもよい。この場合、画像処理システム30は、優先度付け以降の処理を実行してもよい。
第4変形例として、実施例の画像処理システム30の別の利用例を説明する。ここでは、サーバ内に保存されている点群のデータをクライアント装置が取得し、処理(描画等)を実行する。このサーバは、実施例のマスタノード32の機能を備え、点群のデータが示す空間を分割し、内包する点の個数に基づいて各ブロックに優先度を付与し、優先度が高いブロックのデータを先にクライアント装置へ送信する。この変形例でも、点の個数が多いブロックを先にクライアント装置へ届けるため、仮に通信に遅延が発生しても、点の個数が多いブロック、言い換えれば、情報が多い部分がクライアント装置で処理(描画等)される可能性を高めることができる。
上記実施例に記載の技術は、現実空間の様子を示す点群データを処理(描画等)することに制限されず、仮想空間の様子を示す点群データを処理(描画等)する場合にも適用可能であり、実施例と同様に効率的な点群処理を実現できる。
上述した実施例および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。
請求項に記載の各構成要件が果たすべき機能は、上述した実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
30 画像処理システム、 32 マスタノード、 34 描画ノード、 52 空間分割部、 54 点群取得部、 58 優先度決定部、 60 点群処理部、 62 点群配信部、 90 点群取得部、 92 優先度決定部、 96 描画部。

Claims (8)

  1. 空間の外観を複数の点の集合により表した点群であって、前記空間を分割した複数のブロックのいずれかに各点が属する点群を取得する点群取得部と、
    前記複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する優先度決定部と、
    前記優先度決定部により決定された優先度に応じて前記複数のブロックを処理する点群処理部と、
    を備えることを特徴とするデータ処理装置。
  2. 前記優先度決定部は、点の数が多いブロックほど高い優先度を決定することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記点群処理部は、通信網を介して、前記点群に基づくデータ処理を実行すべき外部装置に対してブロック単位に点のデータを送信し、その際に、優先度が高いブロックの点のデータを先に送信することを特徴とする請求項1または2に記載のデータ処理装置。
  4. 前記点群処理部は、各ブロックの点に基づいて各ブロックの画像を生成し、その際に、優先度が高いブロックの画像を先に生成することを特徴とする請求項1または2に記載のデータ処理装置。
  5. 前記点群処理部は、優先度が高いブロックの点に基づくデータ処理を先に実行し、所定時点までにデータ処理が未完了のブロックがあればそのブロックの点に基づくデータ処理をスキップすることを特徴とする請求項1または2に記載のデータ処理装置。
  6. 所定のアルゴリズムにしたがって前記空間を複数のブロックに分割する分割部をさらに備えることを特徴とする請求項1から5のいずれかに記載のデータ処理装置。
  7. 空間の外観を複数の点の集合により表した点群であって、前記空間を分割した複数のブロックのいずれかに各点が属する点群を取得するステップと、
    前記複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定するステップと、
    前記決定するステップで決定された優先度に応じて前記複数のブロックを処理するステップと、
    をコンピュータが実行することを特徴とするデータ処理方法。
  8. 空間の外観を複数の点の集合により表した点群であって、前記空間を分割した複数のブロックのいずれかに各点が属する点群を取得する機能と、
    前記複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する機能と、
    前記決定する機能により決定された優先度に応じて前記複数のブロックを処理する機能と、
    をコンピュータに実現させるためのコンピュータプログラム。
JP2016162289A 2016-08-22 2016-08-22 データ処理装置、データ処理方法およびコンピュータプログラム Active JP6637855B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016162289A JP6637855B2 (ja) 2016-08-22 2016-08-22 データ処理装置、データ処理方法およびコンピュータプログラム
EP17843459.3A EP3503039A4 (en) 2016-08-22 2017-08-15 DATA PROCESSING DEVICE, DATA PROCESSING METHOD AND COMPUTER PROGRAM
US16/318,019 US11227357B2 (en) 2016-08-22 2017-08-15 Data processing apparatus, data processing method, and computer program
PCT/JP2017/029405 WO2018037976A1 (ja) 2016-08-22 2017-08-15 データ処理装置、データ処理方法およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016162289A JP6637855B2 (ja) 2016-08-22 2016-08-22 データ処理装置、データ処理方法およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2018032112A true JP2018032112A (ja) 2018-03-01
JP6637855B2 JP6637855B2 (ja) 2020-01-29

Family

ID=61246480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016162289A Active JP6637855B2 (ja) 2016-08-22 2016-08-22 データ処理装置、データ処理方法およびコンピュータプログラム

Country Status (4)

Country Link
US (1) US11227357B2 (ja)
EP (1) EP3503039A4 (ja)
JP (1) JP6637855B2 (ja)
WO (1) WO2018037976A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021119453A (ja) * 2019-12-30 2021-08-12 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204962B2 (en) * 2018-10-01 2021-12-21 Palo Alto Networks, Inc. Explorable visual analytics system having reduced latency
JP2022172413A (ja) * 2019-09-26 2022-11-16 シャープ株式会社 三次元表現変換装置、および、三次元表現逆変換装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015197329A (ja) * 2014-03-31 2015-11-09 三菱重工業株式会社 データ伝送システム、データ伝送装置、データ伝送方法、及びデータ伝送プログラム
JP2015210186A (ja) * 2014-04-25 2015-11-24 東芝プラントシステム株式会社 3次元データ表示装置、3次元データ表示方法、及び3次元データ表示プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6414680B1 (en) 1999-04-21 2002-07-02 International Business Machines Corp. System, program product and method of rendering a three dimensional image on a display
US7843959B2 (en) * 2004-01-30 2010-11-30 Telefonaktiebolaget Lm Ericsson Prioritising data elements of a data stream
US7804498B1 (en) * 2004-09-15 2010-09-28 Lewis N Graham Visualization and storage algorithms associated with processing point cloud data
US8933943B2 (en) 2008-04-30 2015-01-13 Intel Corporation Technique for performing load balancing for parallel rendering
US20120218277A1 (en) * 2011-02-25 2012-08-30 ST-Ericcson SA Display list mechanism and scalable display engine structures
US9380321B2 (en) * 2012-01-18 2016-06-28 Disney Enterprises, Inc. Method and apparatus for low-latency camera control in a wireless broadcasting system
US20140172377A1 (en) * 2012-09-20 2014-06-19 Brown University Method to reconstruct a surface from oriented 3-d points
US9069415B2 (en) 2013-04-22 2015-06-30 Fuji Xerox Co., Ltd. Systems and methods for finger pose estimation on touchscreen devices
US9763591B2 (en) * 2014-05-05 2017-09-19 Pacesetter, Inc. Method and system to subdivide a mapping area for mechanical activation analysis
KR102238693B1 (ko) * 2014-06-20 2021-04-09 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
US9787557B2 (en) * 2015-04-28 2017-10-10 Google Inc. Determining semantic place names from location reports
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10803561B2 (en) * 2017-06-02 2020-10-13 Wisconsin Alumni Research Foundation Systems, methods, and media for hierarchical progressive point cloud rendering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015197329A (ja) * 2014-03-31 2015-11-09 三菱重工業株式会社 データ伝送システム、データ伝送装置、データ伝送方法、及びデータ伝送プログラム
JP2015210186A (ja) * 2014-04-25 2015-11-24 東芝プラントシステム株式会社 3次元データ表示装置、3次元データ表示方法、及び3次元データ表示プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鈴木太郎,外2名: ""移動ロボットのための屋外三次元地図構築とその活用"", 計測と制御, vol. 第49巻,第9号, JPN6019034569, 2010, pages 640 - 644, ISSN: 0004110122 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021119453A (ja) * 2019-12-30 2021-08-12 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散
JP7302885B2 (ja) 2019-12-30 2023-07-04 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散
US11798119B2 (en) 2019-12-30 2023-10-24 Tmrw Foundation Ip S. À R.L. Multi-dimensional 3D engine computing and virtualization-based dynamic load balancing of virtual or real worlds

Also Published As

Publication number Publication date
US20190304050A1 (en) 2019-10-03
US11227357B2 (en) 2022-01-18
EP3503039A4 (en) 2020-06-03
EP3503039A1 (en) 2019-06-26
WO2018037976A1 (ja) 2018-03-01
JP6637855B2 (ja) 2020-01-29

Similar Documents

Publication Publication Date Title
US11379948B2 (en) Mixed reality system with virtual content warping and method of generating virtual content using same
JP6620079B2 (ja) 画像処理システム、画像処理方法およびコンピュータプログラム
US10313661B2 (en) Wide baseline stereo for low-latency rendering
US20230088433A1 (en) Arbitrary view generation
JP7201869B1 (ja) 前の目線からのレンダリングされたコンテンツおよびレンダリングされなかったコンテンツを使用した新しいフレームの生成
KR20140100656A (ko) 전방향 영상 및 3차원 데이터를 이용한 시점 영상 제공 장치 및 방법
WO2020017134A1 (ja) ファイルの生成装置およびファイルに基づく映像の生成装置
US11004255B2 (en) Efficient rendering of high-density meshes
US10553014B2 (en) Image generating method, device and computer executable non-volatile storage medium
US20210217225A1 (en) Arbitrary view generation
TW201921318A (zh) 用於產生場景之舖磚式三維影像表示之設備及方法
WO2018037976A1 (ja) データ処理装置、データ処理方法およびコンピュータプログラム
US20180053341A1 (en) Arbitrary view generation
US11557087B2 (en) Image processing apparatus and image processing method for generating a strobe image using a three-dimensional model of an object
JP7366563B2 (ja) 画像生成装置、画像生成方法、及びプログラム
Scheer et al. A client-server architecture for real-time view-dependent streaming of free-viewpoint video
WO2022244131A1 (ja) 画像データ生成装置、表示装置、画像表示システム、画像データ生成方法、画像表示方法、および、画像データのデータ構造
JP2011048545A (ja) 画像合成装置及びプログラム
WO2022176719A1 (ja) 画像処理装置、画像処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191223

R150 Certificate of patent or registration of utility model

Ref document number: 6637855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150