未来を創る、テックコミュニティー

代表論文通信~Accelerating 3D Deep Learning with PyTorch3Dを訳す③

草場代表
2020/10/15

こんばんは。代表の草場です。

引き続き、Accelerating 3D Deep Learning with PyTorch3Dを翻訳していきます。

3.3 差動可能な点群レンダラー
PyTorch3D は、メッシュレンダラと同じデザインの、効率的でモジュール化された点群レンダラーも提供しています。これは、Z方向に沿って各ピクセルに最も近いK点を見つけるラスタライザと、ピクセルの色を計算するためにラスタライザからフラグメントデータを消費するPyTorchで書かれたシェーダにも同様に組み込まれています。シルエットとテクスチャの点群レンダリング用のシェーダを提供しており、ユーザーはレンダリングパイプラインをカスタマイズするためのカスタムシェーダを簡単に実装できます。メッシュ レンダラーと同様に、点群レンダリングはネイティブに異種のポイントのバッチをサポートしています。
当社の点群レンダラーは、図 2b で説明した非微分性を克服するために、メッシュレンダラーと同様の戦略を使用しています。各ポイントは、スクリーン空間の円形の領域にスプラットされます。スクリーン空間の円形の領域は,その領域の中心から離れるほど不透明度が減少します.各ピクセルの値は スプラットされた領域がピクセルに重なっている z 軸上の K 番目に近い点のブレンディング情報が得られます.
我々の実験では、2つのブレンディング手法を考慮しています。アルファ合成と正規化された重み付き の和を求めることです。
ある画素が、z軸に沿って増えるように並べられている不透明度α1, … , αK∈[0, 1]のK点からのスプラットによって重なっており、その点が特徴ベクトル f1, … , fK∈R , fK ∈R D と関連付けらられているとします。特徴は、ブーリアン(シルエットレンダリング用)、RGBカラー(テクスチャレンダリング用)、またはニューラル 特徴量 かもしれません。The blending methods compute features fAlpha, fNorm ∈ R
D for the pixel: ブレンド法が,画素ごとに、特徴量fAlpha, fNorm∈R を計算します。

fAlpha = Σ( αi Π( 1 – αj) ) fi, fNorm = ( Σ αi fi ) /( Σ αi )        (2)

アルファ合成では、点の深さの順序を使用して、近い点がより貢献するようにします。Normは深さの順序を無視します。どちらのブレンド関数も微分可能で、勾配を伝搬させることができます。画素特徴から点特徴と不透明度の両方に遡って処理を行うことができます。これらは数行のPyTorchコードを使用して、アルゴリズム1と2と同様の処理を行います。
ランダムな ShapeNet のメッシュの表面から点をサンプリングし、そして2つのブレンディング関数を使用してシルエットをレンダリングすることで、我々の点群レンダラーのベンチマークを行います。点群のサイズを点/画素(K=10,50,150)、画像サイズ(64,256)で変化させます。結果を図4に示します。
私たちのレンダラーは効率的です: 各200k点の8点群のバッチを 1ピクセルあたりK=50ポイントの256×256画像の処理には約75msかかり、1GB強のGPUメモリを使用することで、ニューラルを学習する際にレンダラーを微分可能な層として使用することが可能になります。ネットワークを使用していることを示しています。図4aと4bを比較すると、均質なレンダリングと 匹敵する大きさの不均一なバッチを使用しています。図4bと4cを比較すると、どちらのブレンドも メソッドも同様のメモリ使用量ですが、Norm は大規模な K で最大 25% 高速です。内側の累積積。点群レンダリングは一般的にメッシュレンダリングよりも効率的です。は、ラスタライズ時にプリミティブごとに必要な計算量が少なくて済みます 、

 

この記事を書いた人
草場代表
エディター