TripoSR: Fast 3D Object Reconstruction from a Single Image (2024) 

### TripoSR: Fast 3D Object Reconstruction from a Single Image (Tochilkin, 2024) 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981660/4cc0f92c-76fc-4a8c-b6e1-907262d9396c.png)


#### 3行要約

🚀 TripoSRは、単一画像から0.5秒未満で高品質な3Dオブジェクトメッシュを再構築できる、高速なフィードフォワードモデルです。
💡 LRMベースのトランスフォーマーアーキテクチャを基盤とし、データ処理、モデル設計、学習手法に重要な改善が加えられています。
✨ 公開データセットでの評価では、TripoSRが他のオープンソースモデルと比較して、定量・定性的に優れた再構築性能と高い計算効率を示しました。

#### Q:この論文の概要を教えてください
#### A:
本技術レポートは、単一の入力画像から高速なfeed-forward 3D生成を行い、0.5秒未満で3D meshを出力するtransformerベースの3D再構成モデル、TripoSRを提案しています。TripoSRは、LRM [11]のネットワークアーキテクチャを基盤としつつ、データ処理、モデル設計、学習手法において大幅な改善を加えています。公開データセットでの評価では、他のオープンソースの代替手法と比較して、TripoSRが定量的および定性的に優れた性能を示すことが確認されています。TripoSRはMIT licenseで公開されており、研究者、開発者、クリエイターが3D Generative AIの最新技術を活用できるようにすることを目的としています。

TripoSRのアーキテクチャはLRM [11]と同様にtransformerを活用し、単一画像からの3D再構成に特化しています。入力として単一のRGB画像を受け取り、画像中のオブジェクトの3D表現を出力します。TripoSRの中核は、Image Encoder、Image-to-Triplane Decoder、Triplane-based Neural Radiance Field (NeRF)のコンポーネントから構成されています。

Image Encoderは、事前学習済みのvision transformerモデルであるDINOv1 [1]で初期化されており、入力RGB画像をlatent vectorsのセットに射影します。これらのベクトルは、画像のglobal featureおよびlocal featureをエンコードし、3Dオブジェクトの再構成に必要な情報を含んでいます。

後続のImage-to-Triplane Decoderは、このlatent vectorsをTriplane-NeRF表現 [2]に変換します。Triplane-NeRF表現は、複雑な形状やtextureを持つオブジェクトを表現するのに適した、コンパクトで表現力のある3D表現です。本モデルのDecoderは、self-attention層とcross-attention層を持つtransformer層のスタックで構成されています。self-attention層により、Decoderはtriplane表現の異なる部分にattentionを向け、それらの間の関係性を学習できます。cross-attention層により、DecoderはImage Encoderからのlatent vectorsにattentionを向け、global featureおよびlocal image featureをtriplane表現に組み込むことができます。最後に、NeRFモデルはmultilayer perceptrons (MLPs)のスタックで構成され、3D空間の点のcolorとdensityを予測する役割を担います。

従来のカメラパラメータにconditioningする代わりに、本モデルでは学習およびinference時にカメラパラメータ（extrinsicsおよびintrinsics）を「推測」させる設計を採用しました。これは、inference時におけるin-the-wildな入力画像に対するモデルの頑健性を高めるためです。明確なカメラパラメータのconditioningを排除することで、正確なカメラ情報なしに幅広い実世界のシナリオに対応できる、より適応性が高くresilientなモデルを育成することを目指しています。モデルの主要なパラメータ、例えばtransformerの層数、triplaneの次元、NeRFモデルの詳細、主要な学習設定はTable 1に詳述されています。LRM [11]と比較して、TripoSRはいくつかの技術的改善を導入しています。

データ面では、学習データ収集において2つの改善を取り入れました。
1.  **Data Curation:** CC-BY licenseで利用可能なObjaverse [4]データセットの中から慎重にキュレーションされたサブセットを選択することで、学習データの品質を向上させました。
2.  **Data Rendering:** 実世界の画像の分布により近い多様なdata rendering技術を採用し、Objaverseデータセットのみで学習した場合でもモデルの汎化能力を高めています。

モデルおよび学習面では、モデルの効率と性能の両方を向上させるための調整を行いました。
**Triplane Channel Optimization:** Triplane-NeRF表現内のチャンネル構成は、volume renderingの高い計算コストのため、学習およびinference時のGPU memory footprintの管理において重要な役割を果たします。加えて、チャンネル数は詳細で高fidelityな再構成におけるモデルの能力に大きく影響します。再構成品質と計算効率の最適なバランスを追求し、実験的評価の結果、40チャンネルの構成を採用しました。この選択により、学習段階でより大きなbatch sizeと高解像度を使用可能にしつつ、inference時のmemory requirementsを最小限に抑えることができます。

**Mask Loss:** 学習中にmask loss関数を組み込むことで、"floater" artifactsを大幅に削減し、再構成のfidelityを向上させました。Mask Lossは以下で定義されます。
$$L_{mask}(\hat{M}_v, M_{GTv}) = BCE(\hat{M}_v, M_{GTv})$$
ここで、$\hat{M}_v$と$M_{GTv}$はそれぞれv番目のsupervision viewにおけるrendered mask imageとground-truth mask imageです。学習中に最小化された完全なtraining lossは以下のようになります。
$$L_{recon}(I) = \frac{1}{V}\sum_{v=1}^{V} \left( L_{MSE}(\hat{I}_v, I_{GTv}) + \lambda_{LPIPS} L_{LPIPS}(\hat{I}_v, I_{GTv}) + \lambda_{mask} L_{mask}(\hat{M}_v, M_{GTv}) \right)$$
ここで、$V$はsupervision viewの数、$L_{MSE}$はMean Squared Error loss、$L_{LPIPS}$はLPIPS loss、$\lambda_{LPIPS}$と$\lambda_{mask}$はそれぞれのloss項の重みです。

**Local Rendering Supervision:** 本モデルはsupervisionのためにrendering lossesに完全に依存しており、モデルが詳細なshapeとtextureの再構成を学習するためには高解像度でのrenderingが必要です。しかし、高解像度（例: 512 × 512以上）でのrenderingとsupervisionは計算およびGPU memoryの負荷を過大にすることがあります。この問題を回避するため、学習中は元の512 × 512解像度画像から128 × 128サイズのランダムなパッチをrenderingします。特に重要なのは、前景領域をカバーするcropを選択する可能性を高めることで、関心領域に重点を置いています。このimportance sampling戦略により、オブジェクト表面の細部の忠実な再構成が保証され、計算効率と再構成のgranularityのバランスが効果的に取られています。

結果として、TripoSRはGSO [6]とOmniObject3D [30]の2つの公共データセット（シンプル形状オブジェクトを手動でフィルタリングし、多様なオブジェクトコレクションとしたキュレーション済みサブセットを使用）で評価されました。3D shape metricsとしてChamfer Distance (CD)とF-score (FS)を使用し、Implicit 3D representations（例: NeRF）をMarching Cubes [18]を用いてmeshに変換し、出力されたmeshをground truth shapeと位置合わせするためにbrute-force searchとIterative Closest Point (ICP)法を用いました。

既存のfeed-forward 3D reconstruction techniquesであるOne-2-3-45 [16]、TriplaneGaussian (TGS) [35]、ZeroShape [13]、OpenLRM [10]と比較した定量的評価では、TripoSRはTable 2およびTable 3に示すように、CDおよびFS metricsの両方で全てのbaselineを大幅に上回り、このタスクで新たなState-of-the-art性能を達成しました。

パフォーマンス対実行時間の比較では、TripoSRのもう一つの主要な利点はinference速度です。NVIDIA A100 GPUで単一画像から3D meshを生成するのに約0.5秒かかります。Figure 2では、異なる手法のinference時間をx軸に、平均F-scoreをy軸にした2Dプロットを示しています。このプロットは、TripoSRが最も高速なネットワーク群の一つでありながら、同時に最高の性能を持つfeed-forward 3D reconstruction modelであることを示しています。

視覚的な結果（Figure 3）では、ZeroShapeはover-smoothedな形状を予測する傾向があり、TGSはより多くのsurface detailsを再構成しますが、これらのdetailsが入力と一致しない場合があります。また、ZeroShapeとTGSはtextured meshesを直接出力できません。一方、One-2-3-45とOpenLRMはtextured meshesを予測しますが、その推定された形状はしばしば不正確です。これらのbaselineと比較して、TripoSRは形状とtextureの両方で高い再構成品質を示しています。本モデルはオブジェクトのより良い全体的な3D構造を捉えるだけでなく、いくつかのintricate detailsのモデリングにも優れています。

結論として、本レポートはオープンソースのfeedforward 3D reconstruction model、TripoSRを発表しました。本モデルの中核はLRMネットワーク [11]を基盤としたtransformerベースのアーキテクチャであり、複数の側面で実質的な技術的改善が加えられています。2つの公共ベンチマークで評価された結果、本モデルは高い計算効率とともにState-of-the-artの再構成性能を示しました。TripoSRが研究者および開発者によるより先進的な3D Generative AIモデルの開発を促進することを期待しています。

#### Q:提案手法の処理の流れを順序だてて説明してください
#### A:

TripoSRは、単一のRGB画像をインプットとして受け取り、高速なフィードフォワード処理で3Dオブジェクトを再構成します。その主な処理フローは以下のようになります。

1.  **入力**: 単一のRGB画像（例えば 512 × 512 解像度）を入力としてシステムに渡します。

2.  **画像エンコード (Image Encoding)**:
    *   入力されたRGB画像は、Vision Transformerモデル（DINOv1で初期化されたもの）である画像エンコーダーによって処理されます。
    *   このエンコーダーは、画像全体のグローバルな特徴と、各部分のローカルな特徴を捉え、それらを「Latent Vectors」（潜在ベクトル）のセットとして出力します。これらの潜在ベクトルには、3Dオブジェクトを再構成するために必要な情報が含まれています。

3.  **画像-Triplaneデコード (Image-to-Triplane Decoding)**:
    *   画像エンコーダーから得られた潜在ベクトルは、Image-to-Triplaneデコーダーに入力されます。
    *   このデコーダーは、Transformerレイヤーのスタックで構成されており、内部には自己注意機構（self-attention）と交差注意機構（cross-attention）があります。
    *   自己注意機構は Triplane 表現の異なる部分間の関係性を学習し、交差注意機構は画像エンコーダーからの潜在ベクトルに注意を向け、グローバルおよびローカルな画像特徴を Triplane 表現に統合します。
    *   このデコード処理により、入力画像の情報をエンコードした「TriplaneベースのNeural Radiance Field (NeRF)」表現が生成されます。これは、3Dオブジェクトの形状とテクスチャを表現するためのコンパクトで表現力豊かな形式です。
    *   **(補足)** このステップでは、モデルがカメラパラメータ（外部・内部）を「推測」する形で処理を進めます。これは、推論時に「in-the-wild」（カメラ情報が不明な実世界）の入力画像に対して頑健性を高めるための設計判断です。

4.  **Triplane表現 (Intermediate 3D Representation)**:
    *   上記のデコード処理を経て、TriplaneベースのNeRF表現が生成されます。これは直接的なメッシュではありませんが、空間内の任意の点の色と密度を問い合わせることができる3D情報を含んでいます。NeRFモデル（多層パーセプトロン、MLPのスタック）は、このTriplane表現を利用して、3D空間の各点における色と密度を予測する機能を提供します。

5.  **メッシュへの変換 (Conversion to Mesh)**:
    *   TripoSRの主要な出力はTriplaneベースのNeRF表現ですが、多くのアプリケーションや評価ではExplicitな3Dメッシュが必要です。
    *   論文の評価セクションでは、Implicitな3D表現（NeRFの密度情報）からIsosurface（等値面）を抽出するために、Marching Cubesアルゴリズム[18]を使用していることが述べられています。
    *   このMarching CubesアルゴリズムをTriplaneベースNeRFの密度場に適用することで、最終的な3Dメッシュが得られます。テクスチャ付きメッシュの場合は、NeRFの色情報も頂点カラーなどに適用されます。

したがって、大まかな流れは **入力画像 → 画像エンコーダー → Image-to-Triplaneデコーダー → TriplaneベースNeRF表現** というフィードフォワード計算があり、評価や可視化のために **TriplaneベースNeRF表現 → Marching Cubes → 3Dメッシュ** という後処理が加わると理解できます。

**特に、ステップ2から4までのモデルの順方向計算が非常に高速（0.5秒未満）であることがTripoSRの大きな特徴です。**


#### Q:関連手法との比較について詳しく説明してください
#### A:

論文の「3. Results」セクションでは、TripoSR の性能を既存のいくつかの最先端手法と比較しています。比較の観点は主に以下の3つです。

1.  **定量的性能 (Quantitative Performance):** 再構成された3D形状の精度を数値指標で比較します。
2.  **定性的性能 (Qualitative Performance):** 再構成された3Dモデルの視覚的な品質を比較します。
3.  **推論速度 vs. 性能 (Performance vs. Runtime):** モデルの推論にかかる時間とその再構成品質を比較します。

比較対象となっている主な手法は以下の通りです（いずれも単一画像からの3D再構成手法です）。

*   One-2-3-45 [16]
*   ZeroShape [13]
*   TriplaneGaussian (TGS) [35]
*   OpenLRM [10]

これらの手法は、TripoSR と同様に **feed-forward** なアプローチ（最適化プロセスなしに画像を一度通すだけで結果を出力する方式）に分類されます。これは、拡散モデルを用いた最適化ベースの手法（DreamFusion [20] など）が通常、高品質ながらも非常に時間がかかる（数十分〜数時間）のに対し、高速な推論が可能です。TripoSR はこの feed-forward な手法群の中で性能向上を目指しています。

### 1. 定量的性能の比較

論文では、評価用データセットとしてフィルタリングされた GSO [6] と OmniObject3D [9] を使用し、以下の3D形状メトリックで比較しています。

*   **Chamfer Distance (CD) ↓**: 再構成されたメッシュと ground truth メッシュの間の点の距離の平均値。値が小さいほど形状が ground truth に近いことを示します。
*   **F-score (FS) ↑**: 指定された距離閾値内にある再構成されたメッシュの点の割合（Precision）と、ground truth メッシュの点の割合（Recall）の調和平均。値が大きいほど、メッシュが ground truth の形状を正確かつ完全にカバーしていることを示します。論文では閾値 0.1, 0.2, 0.5 で評価しています。

**結果（Table 2, Table 3 参照）:**

*   **GSO データセット (Table 2):**
    *   CD: TripoSR (0.111) が最も低く、OpenLRM (0.180)、ZeroShape (0.160)、TGS (0.122)、One-2-3-45 (0.227) を上回ります。
    *   FS@0.1: TripoSR (0.651) が最も高く、TGS (0.637) がそれに続きます。他の手法はこれを下回ります。
    *   FS@0.2, FS@0.5: 同様に TripoSR が最も高いスコアを達成しています。
*   **OmniObject3D データセット (Table 3):**
    *   CD: TripoSR (0.102) が最も低く、他の手法よりも優れています。
    *   FS@0.1, FS@0.2, FS@0.5: TripoSR が全ての閾値で最も高いスコアを記録しており、特にFS@0.1 (0.677) では他の手法（TGS 0.602など）に対して顕著な差をつけています。

**結論:** 定量的なメトリックにおいて、TripoSR は比較対象の全ての feed-forward SOTA 手法を上回り、新しい最先端の性能を達成したと論文は述べています。

### 2. 定性的性能の比較

Figure 3 では、いくつかのサンプル画像に対する各手法の再構成結果が視覚的に比較されています。

*   **ZeroShape [13]:** 定量的な性能は悪くないものの、視覚的には「over-smoothed shapes」（滑らかすぎてディテールが失われた形状）を予測する傾向があると指摘されています。テクスチャ付きメッシュを直接出力できません。
*   **TGS [35]:** ZeroShape よりも多くの表面ディテールを再構成できますが、それらのディテールが入力画像と「sometimes do not align」（時々一致しない）場合があると述べられています。TGS もテクスチャ付きメッシュを直接出力することは非自明（point cloud を利用した表面再構成からのテクスチャマッピングはノイズが多い）とされています。
*   **One-2-3-45 [16] および OpenLRM [10]:** これらの手法はテクスチャ付きメッシュを出力できます。しかし、論文では彼らの推定した形状は「often inaccurate」（しばしば不正確）であると評されています。
*   **TripoSR (ours):** TripoSR は形状とテクスチャの両方で「high reconstruction quality」（高い再構成品質）を示していると強調されています。比較手法よりも優れた全体的な3D構造を捉えるだけでなく、「several intricate details」（いくつかの複雑なディテール）のモデリングにも優れているとされています。テクスチャ付きメッシュも出力できます。

**結論:** 視覚的にも、TripoSR は形状の忠実度とテクスチャの品質の両方で、比較対象手法よりも優れていると論文は主張しています。

### 3. 推論速度 vs. 性能の比較

Figure 2 は、推論時間（横軸）と F-score@0.1（縦軸）の散布図で各手法をプロットしています。

*   TripoSR の大きな特徴の一つは、その推論速度です。NVIDIA A100 GPU 上で、単一画像から3Dメッシュを生成するのに **0.5秒未満** という高速性を達成しています。
*   Figure 2 を見ると、TripoSR はプロットの右上（F-scoreが高く、推論時間が短い）に位置しており、比較対象の feed-forward 手法群の中で、**最速クラスでありながら最高の性能（F-score）** を達成していることが視覚的に示されています。論文ではこれを「among the fastest networks, while also being the best-performing feed-forward 3D reconstruction model」（最速のネットワークの一つであり、同時に最高の性能を持つフィードフォワード3D再構成モデルである）と述べています。

**結論:** TripoSR は、高速な推論という feed-forward アプローチの利点を最大限に活かしつつ、他の高速手法よりも顕著に高い再構成品質を実現しており、効率性と性能のバランスにおいて優位性を示しています。

### まとめ

論文全体を通して、TripoSR はデータ処理、モデル設計（特に Triplane チャンネル最適化と Mask Loss）、トレーニング手法の改良を通じて、既存の feed-forward な単一画像3D再構成手法、特に LRM [11] をベースとしつつも、定量的・定性的な性能および速度の全ての面で比較対象の手法を凌駕し、この分野の新しい SOTA を確立したと結論づけられています。

これらの比較結果は、TripoSR が単に速いだけでなく、高品質な3D再構成を単一画像から実現できる、実用的かつ高性能なモデルであることを強く示唆しています。


#### 再構築結果の比較
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981660/a8d2e7c4-22dd-4b42-86e0-a9b617ed019e.png)

この画像は、TripoSRを含む様々な手法を用いた単一画像からの3D物体再構築の定性的な結果を示しています（図3より）。

*   **Input image (入力画像):** 再構築の元となる単一の画像です。様々なオブジェクト（恐竜、おもちゃ、ショベルカー、椅子、ブロッコリー、バッグ）が例として挙げられています。
*   **ZeroShape:** この手法による再構築結果は、形状が過度に滑らかになる傾向があります。詳細は失われているようです。
*   **TGS:** この手法は表面のディテールをより多く再構築していますが、そのディテールが入力画像と完全に一致しない場合があることが指摘されています。また、ZeroShapeと同様に、直接テクスチャ付きのメッシュを出力することはできません。
*   **One-2-3-45:** この手法はテクスチャ付きのメッシュを出力しますが、再構築された形状が入力画像に対して不正確なことが多いようです。
*   **OpenLRM:** One-2-3-45と同様にテクスチャ付きのメッシュを出力しますが、形状の推定精度には課題があるようです。
*   **TripoSR w/o texture:** TripoSRのテクスチャなしの再構築結果です。他のベースラインと比較して、より正確な形状を捉えていることが視覚的に示されています。
*   **TripoSR w/ texture:** TripoSRのテクスチャ付きの再構築結果です。この行を見ると、TripoSRは形状だけでなくテクスチャの品質も高く、オブジェクト全体の3D構造と細部の両方をより良くモデル化できていることがわかります。

この図は、TripoSRが他の既存のオープンソース手法 (ZeroShape, TGS, One-2-3-45, OpenLRM)と比較して、質的に優れた再構築性能を示していることを裏付けています。これらの結果は、GSO および OmniObject3D データセットのオブジェクトを用いて得られています。



#### Q:提案手法の限界と今後の課題はなんですか？
#### A:
1.  **汎化性能の限界 (Generalization beyond training data):**
    *   論文では、訓練データとして Objaverse の特定のサブセットを注意深くキュレーションし、レンダリング多様性を高めることで、実世界の画像への汎化を試みています。また、カメラパラメータを明示的に条件付けしないことで、未知の入力画像へのロバスト性を高めたと述べています。
    *   しかし、評価に使われているのは GSO や OmniObject3D のフィルタリングされたオブジェクトデータセットです。非常に複雑な形状、非剛体オブジェクト（服など）、透過・反射率の高いオブジェクト、あるいは複雑なシーン（単一オブジェクトではなく複数のオブジェクトや背景を含む）など、訓練データで十分にカバーされていない多様な実世界データに対して、どこまで高い再構成品質を維持できるかは検証されていません。
    *   **今後の課題:** より多様なデータソース（イン・ザ・ワイルドな画像、様々なカテゴリのオブジェクト、シーンデータなど）での頑健性を向上させること。訓練データに存在しない未知のクラスや形状、テクスチャへの対応能力を高める研究が考えられます。

2.  **Triplane表現の限界 (Limitations of the Triplane representation):**
    *   TripoSR は LRM と同様に triplane-based NeRF を基盤としています。Triplane はメモリ効率が良い表現ですが、非常に細かい幾何学的ディテールや、複雑なトポロジー（多数の穴や細い構造など）を持つオブジェクトの表現には inherent な限界がある可能性があります。
    *   定性的な結果（Figure 3）ではSOTAと比較して詳細がよくreconstructできていますが、さらに微細なディテールが必要なアプリケーションでは、表現能力の限界に直面するかもしれません。
    *   **今後の課題:** Triplane表現を補完する、あるいは置き換える新しい3D表現の探求（例：Implicit Surface Learning [19, 30]、Gaussian Splatting [23, 26]、Meshベースのアプローチ [7, 8, 28] との融合など）、またはTriplane表現自体の分解能や表現力を向上させる手法の開発。

3.  **テクスチャの忠実度と一貫性 (Texture fidelity and consistency):**
    *   TripoSRはテクスチャ付きメッシュを出力できる点を強みとしていますが、単一の画像からのテクスチャ再構成は、隠れている部分のテクスチャ予測や、異なる視点から見た際のテクスチャの一貫性の維持など、依然として難しい課題を含んでいます。
    *   論文では「better details」とありますが、実写レベルのフォトリアリスティックなテクスチャを常に生成できるとは限りません。
    *   **今後の課題:** より高品質で視点に依存しないテクスチャ生成手法の開発。例えば、拡散モデル [20, 21, 23] のテクスチャ生成能力を活用したり、複数の合成ビューを用いてテクスチャの一貫性を強化するアプローチなどが考えられます。

4.  **カメラパラメータの推定精度 (Accuracy of camera parameter estimation):**
    *   TripoSRはカメラパラメータをモデルが「推測」することで頑健性を高めていますが、この推測が常に正確である保証はありません。特に、焦点距離が極端に異なる画像や、魚眼レンズなどの歪みの大きい画像、あるいはアスペクト比が一般的でない画像などに対して、推定精度が落ちる可能性があります。
    *   カメラパラメータの不正確さは、再構成される3Dモデルの形状やスケールに歪みをもたらす可能性があります。
    *   **今後の課題:** カメラパラメータの推定精度をさらに向上させる、あるいは不確実性をモデル化する手法。あるいは、パラメータ推定に失敗しやすいケースを特定し、対処するメカニズムを組み込むこと。

これらの点について、TripoSRの高速なフィードフォワード推論という利点を維持しながら、どのように性能を向上させていくかが、今後の重要な研究方向となりそうです。