>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

Microsoftがニューラルネットワークに数秒で3Dモデルを組み立てる方法を教えた方法

高品質な3Dアセットを作成するのに通常どれくらいの時間がかかるか、考えてみてください。手作業でのモデリングをしなくても、第1世代のニューラルネットワークを使用する場合、プロセスは宝くじのようなものになることが多いです:テクスチャが「漂流」したり、ジオメトリがメチャクチャになったり、GPUがメモリ不足で落ちたり。MicrosoftがTRELLIS.2を発表しましたが、これは1枚の画像から3Dオブジェクトを高速かつ高品質に生成することを本当に実現しようとした、おそらく最も賢明な尝试の一つです。

それは何であり、なぜ必要なのか

TRELLIS.2は40億パラメータを持つ大規模生成モデルです。簡単に言えば、通常の2D画像を入力すると、本格的な3Dオブジェクトに変換します。しかし、「点群」や壊れたメッシュを出力する多くの学術プロジェクトとは異なりここでは、PBRマテリアル(カラー、メタリック、ラフネス)を備えたレンダー готовыйアセットが得られます。

興味深いのは、開発者が従来のSDF(符号付き距離場)を捨てて、O-Voxelと呼ばれる構造を採用したことです。これにより、モデルが複雑なトポロジーを「理解」できるようになりました:衣服、樹葉、内部空洞を持つオブジェクトなど、従来のアルゴリズムが処理に困るようなものです。

Teaser

TRELLIS.2が他のものと違う点

「フォトリアリスティック」を約束するプロジェクトをよく目にしますが、実際にはH100と1つの椅子に30分かかります。ここでは状況が異なります。

速度と解像度

モデルは16x空間圧縮を持つSparse 3D VAEで動作します。これにより、512³解像度でオブジェクトをわずか3秒で生成できます。もっと本格的なものが必要な場合(1024³など)は、約17秒待つ必要があります。比較のために:多くの代替品はこれに分を費やし、結果はしばしばもっと悪く見えます。

マテリアルとの作業

これは単なる着色された人形ではありません。モデルは完全な表面属性を生成します:

  • ベースカラー
  • ラフネス
  • メタリック
  • 不透明度

最後の点は特に嬉しいです。ガラスオブジェクトや半透明のファブリックを生成でき、レンダリング時にそれなりの見た目になります。

トポロジーの汎用性

O-Voxel 덕분에、モデルはオブジェクトのすべての穴を「パッチ」しようとしません。表面が接触していない場所でも、ジオメトリを壊すことなく、開いた表面(薄い紙やドレスの裾など)を簡単に処理できます。

技術的な側面

内部的には、TRELLIS.2はDiT(Diffusion Transformer)で動作します。これをすべて高速に動作させるために、Microsoftチームはバンドルされているいくつかのヘルパーライブラリを書きました:

  1. FlexGEMM — Triton上のスパース畳み込み実装。
  2. CuMesh — 高速メッシュ処理、UV展開、簡略化のためのCUDAユーティリティ。
  3. O-Voxel — 新しいデータ表現を操作するためのコアそのもの。

興味深いことに、メッシュからボクセルへの変換とその逆変換は、GPU上でわずか数ミリ秒で完了します。これは、このようなソリューションをゲーム開発パイプラインに埋め込む予定がある場合、極めて重要です。

自分で実行する方法

먼저 말하자면:このプロジェクトは要求が高いです。Linuxと少なくとも24GBのVRAMを持つNVIDIA GPU(RTX 3090/4090またはサーバーA100/H100)が必要です。Windowsでは、WSL2経由でのみ実行できるでしょうが、開発者は厳密にLinuxでのみテストを行いました。

インストールはこのようなプロジェクトとしては標準的ですが、CUDA拡張機能のコンパイルが必要です:

git clone -b main https://github.com/microsoft/TRELLIS.2.git --recursive
cd TRELLIS.2
# Скрипт создаст окружение и поставит все зависимости, включая специфичные либы
. ./setup.sh --new-env --basic --flash-attn --nvdiffrast --nvdiffrec --cumesh --o-voxel --flexgemm

すべてが順調に進んだ場合、数行のコードで生成を実行できます:

from trellis2.pipelines import Trellis2ImageTo3DPipeline
from PIL import Image

# Загружаем модель (веса подтянутся с Hugging Face)
pipeline = Trellis2ImageTo3DPipeline.from_pretrained("microsoft/TRELLIS.2-4B")
pipeline.cuda()

# Берем картинку и запускаем магию
image = Image.open("your_image.png")
mesh = pipeline.run(image)[0]

# Экспортируем в GLB с текстурами
# (в коде репозитория есть подробный пример в example.py)

試す価値はあるか

このプロジェクトは、一意のオブジェクトでシーンを迅速に満たす必要がある人にとって堅実なツールに見えます。是的、システム要件は厳しいですが、40億パラメータと本物のPBRはその価値があります。

特に気に入っているのは、Microsoftが重みと推論だけでなく、完全なトレーニングコードも公開したことです。これは 곧、特定のスタイルやオブジェクトカテゴリ向けの微調整済みモデルが見られることになるでしょう。3D生成に携わっているか、単に最新のSOTAモデル弄りを楽しんでいるなら、TRELLIS.2は研究する価値のある時間に見合うものです。CUDA 12.4がインストールされていることを確認してください。そうでなければ、設定プロセスはコンパイルエラーを修正する excitingな旅になります。

関連プロジェクト