Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Differentiable Rendering

微分可能レンダリングは、シーンの形状、素材、カメラを変えたときに各レンダリングピクセルがどのように変化するかを計算するため、3Dシーンを写真に合わせて最適化できます。

微分可能レンダリングとは、3Dシーンの形状、マテリアル、照明、カメラの記述を画像に変換するレンダリングを、シーンパラメーターに対する各出力ピクセルの微分を計算できるように実装したものです。レンダリング画像と写真を比較する損失関数は、バックプロパゲーションをレンダラーから3Dシーンまで伝播させながら、勾配降下法で最小化できます。これにより、画像からシーンを復元するコンピュータービジョンのタスクである逆レンダリングや、ニューラルレンダリングの基盤となります。後者には、シーンモデルをレンダリングして学習するニューラル放射場(NeRF)やガウシアンスプラッティングなどの手法があります。

レンダリングに特別な処理が必要な理由#

一般的なラスタライザーは、重要な箇所で微分可能ではありません。ピクセルが三角形で覆われるかどうかは頂点位置のステップ関数であり、頂点を少し動かしてもエッジがピクセル中心を横切るまではどのピクセルにも変化がないため、ジオメトリに対する勾配はほとんど至る所でゼロになります。オクルージョンも、ある面が別の面を隠す位置に不連続性を生みます。微分可能レンダラーは、こうしたエッジをさまざまな方法で処理します。

  • 勾配の近似: OpenDR(2014年)とNeural 3D Mesh Renderer(2018年)は、順方向パスでは標準的なラスタライザーを使用し、逆方向パスでは勾配を近似します。
  • ソフトラスタライゼーション: SoftRas(2019年)は、各ピクセルのハードな被覆判定を、三角形のエッジからの距離に応じて滑らかに変化する確率に置き換え、重なり合う面をブレンドします。そのため、エッジ付近のすべてのピクセルからジオメトリへ勾配が伝わります。
  • 物理ベースの微分可能レンダリング: redner(2018年)やMitsuba 3(2022年)などのレイトレーサーは、シルエットのエッジをサンプリングするか、レンダリング積分を再パラメーター化して、影、反射、間接光の勾配を得ます。
  • ボリュームレンダリングとスプラットレンダリング: NeRFの各レイに沿った密度のアルファ合成と、ガウシアンスプラッティングのラスタライズされた3Dガウス分布は、構造上、パラメーターに対して滑らかな関数です。

単一の円盤を対象とするソフトラスタライザーで、PyTorchを使ってこの考え方を示します。被覆率は円盤のエッジからの符号付き距離に対するsigmoidで表されるため、境界付近のすべてのピクセルから中心と半径に勾配が伝わります。

import torch

# Pixel coordinates of a 64x64 image
ys, xs = torch.meshgrid(torch.arange(64.0), torch.arange(64.0), indexing="ij")


def render(center, radius):
    """Soft-rasterize a disk: pixel coverage is a sigmoid of the signed distance to its edge."""
    distance = torch.sqrt((xs - center[0]) ** 2 + (ys - center[1]) ** 2 + 1e-6)
    return torch.sigmoid(radius - distance)


# Target image: a disk at (40, 24) with radius 12
target = render(torch.tensor([40.0, 24.0]), torch.tensor(12.0))

# Recover the scene from a wrong guess by backpropagating the pixel loss
center = torch.tensor([20.0, 40.0], requires_grad=True)
radius = torch.tensor(6.0, requires_grad=True)
optimizer = torch.optim.Adam([center, radius], lr=0.5)
for _ in range(300):
    loss = ((render(center, radius) - target) ** 2).mean()
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

print(f"center {center.detach().round(decimals=1).tolist()}, radius {radius.item():.1f}")

出力はcenter [40.0, 24.0], radius 12.0です。半径の半分ほどの距離から開始しても、Adamオプティマイザーはピクセル差分だけから円盤を復元します。ハードな被覆率を使う(distance < radius).float()では、損失からどちらのパラメーターにも勾配が伝わりません。

実際のアプリケーション#

コード内のもののようなシルエット損失は、レンダリングした物体マスクを観測されたマスクと比較します。アノテーションのない写真では、YOLO26(yolo26n-seg.pt)などのインスタンスセグメンテーションモデルが、画像内のすべての物体のマスクを生成します。

  • 3D再構成: NeRF(2020年)と3D Gaussian splatting(2023年)は、カメラポーズが分かっている数十枚の写真にシーンをフィッティングします。ガウシアンスプラッティングは、その後、新しい視点をリアルタイムでレンダリングし、1080pで毎秒30フレーム以上を実現します。
  • 人体フィッティング: ボディモデルを使う手法では、レンダリングされたシルエットと投影された関節を人物のマスクおよびキーポイントに合わせることで、SMPLなどのパラメトリックメッシュを画像にフィッティングします。
  • テキストからの3D生成: DreamFusion(2022年)は、ランダムな視点からのレンダリングがテキスト画像拡散モデルで高いスコアを得るようにNeRFを最適化し、3D学習データを使わずに3Dオブジェクトを生成します。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう