فاز 8 · درس 12

تولید سه‌بعدی با هوش مصنوعی: از پاشش گاوسی تا دیفیوژن چندنما

نوع
مفهومی
زمان
حدود 45 دقیقه
زبان‌ها
Python
پیش‌نیاز
فاز 4 (بینایی ماشین)، فاز 8 · درس 07 (دیفیوژن نهان)
طرح مفهومی از یک مجسمه سه‌بعدی شفاف احاطه‌شده توسط دوربین‌های معلق که نماهای مختلف آن را ثبت می‌کنند
فهرست مطالب
  1. صورت مسئله
  2. مفهوم
  3. بازنمایی: پاشش گاوسی سه‌بعدی (Kerbl et al., 2023)
  4. دیفیوژن چندنما
  5. پایپ‌لاین‌های متن به سه‌بعدی
  6. نرف (برای آشنایی با زمینه)
  7. پیاده‌سازی
  8. گام 1: پاشش گاوسی دوبعدی
  9. گام 2: رندر از طریق جمع زدن پاشش‌ها
  10. گام 3: برازش با گرادیان کاهشی
  11. چالش‌ها و دام‌ها
  12. کاربرد عملی
  13. تحویل پروژه
  14. تمرین‌ها
  15. اصطلاحات کلیدی
  16. نکته‌ی فنی عملیاتی: داده‌های سه‌بعدی هنوز بستر زیرساختی واحدی ندارند
  17. برای مطالعه‌ی بیشتر

تولید محتوای سه‌بعدی همواره یکی از گلوگاه‌های پرهزینه در بازی‌سازی، جلوه‌های ویژه و شبیه‌سازی بوده است. کمبود مجموعه‌داده‌های تمیز سه‌بعدی و حجم محاسباتی سنگین شبکه‌های واکسل، ساخت مستقیم مدل‌ها را دشوار می‌کرد. ظهور پاشش گاوسی سه‌بعدی (3D Gaussian Splatting) در سال 2023 و ترکیب آن با مدل‌های دیفیوژن چندنما، این معادله را به نفع توسعه‌دهندگان تغییر داد.

در معماری‌های جدید، ابتدا تصاویر چندنما با مدل‌های دیفیوژن دوبعدی ساخته می‌شوند و سپس به کمک روش‌های بازسازی سریع یا برازش پاشش گاوسی، دارایی‌های سه‌بعدی با متریال واقعی (PBR) تولید می‌شوند. این رویکرد به شما اجازه می‌دهد تا بدون نیاز به پایپ‌لاین‌های پیچیده‌ی قدیمی، مستقیماً از یک متن یا تک‌عکس به خروجی مناسب موتورهای بازی برسید.

برای اجرای تست‌ها و آموزش مدل‌های کامل، دسترسی به کارت‌های گرافیک قدرتمند ضروری است؛ از آنجا که اجاره‌ی GPUهای ابری خارجی به دلیل محدودیت‌های پرداخت ارزی و دسترسی برای کاربران داخل ایران چالش‌برانگیز است، در این درس پیاده‌سازی مفهومی پاشش گاوسی را در قالب یک شبیه‌سازی دوبعدی ساده و سبک بررسی می‌کنیم که روی هر سیستمی به‌راحتی اجرا می‌شود.

دنیای سه‌بعدی جایی است که اهرم تبدیل دوبعدی به سه‌بعدی بیشترین قدرت را دارد. دستاورد بزرگ سال 2023، پاشش گاوسی سه‌بعدی (3D Gaussian Splatting) بود. در ادامه‌ی این مسیر، موج فناوری‌های زاینده در سال‌های 2024 تا 2026 با سوار کردن مدل‌های دیفیوژن چندنما (multi-view diffusion) روی بازسازی سه‌بعدی، تولید اشیا و صحنه‌ها را تنها با یک پرامپت (prompt) یا عکس ممکن کرد.

صورت مسئله

کار با محتوای سه‌بعدی دردسرساز است:

  • بازنمایی (Representation): مِش‌ها، ابر نقاط (point clouds)، شبکه‌های واکسل (voxel grids)، توابع علامت‌دار فاصله (SDFs)، میدان‌های تابش عصبی (NeRFs) و گاوسی‌های سه‌بعدی؛ هرکدام معایب و مزایای خود را دارند.
  • کمبود داده: مجموعه‌داده‌ی ImageNet حدود 14 میلیون تصویر دارد، درحالی‌که بزرگ‌ترین مجموعه‌داده‌ی تمیز سه‌بعدی (Objaverse-XL، سال 2023) نزدیک به 10 میلیون شیء دارد که اکثرشان هم بی‌کیفیت هستند.
  • حافظه: یک شبکه‌ی واکسل 512³ شامل 128 میلیون واکسل است؛ یک مدل نرفِ کاربردی برای یک صحنه، به 1 میلیون نمونه در ازای هر پرتو نیاز دارد. تولید سه‌بعدی بسیار سخت‌تر از بازسازی آن است.
  • نظارت (Supervision): در تصویر دوبعدی پیکسل‌ها در اختیارتان هستند؛ اما در فضای سه‌بعدی معمولاً چند نمای دوبعدیِ پراکنده دارید و باید آن‌ها را به مدل سه‌بعدی ارتقا دهید.

فناوری‌های سال 2026 این دو مسئله را از هم تفکیک کرده‌اند: ابتدا تصاویر چندنمای دوبعدی را با یک مدل دیفیوژن تولید می‌کنند و سپس یک بازنمایی سه‌بعدی (معمولاً پاشش گاوسی) را روی این تصاویر می‌نشانند (fit می‌کنند).

مفهوم

تولید سه‌بعدی: دیفیوژن چندنما + بازسازی سه‌بعدی

بازنمایی: پاشش گاوسی سه‌بعدی (Kerbl et al., 2023)

صحنه به شکل ابری از حدود 1 میلیون گاوسی سه‌بعدی نمایش داده می‌شود. هر گاوسی 59 پارامتر دارد: موقعیت (3)، کوواریانس (6، یا کواترنیون 4 + مقیاس 3)، شفافیت (1) و رنگ بر پایه‌ی هارمونیک‌های کروی (48 پارامتر در درجه‌ی 3، 3 پارامتر در درجه‌ی 0).

رندرینگ = تصویر کردن (projection) + ترکیب آلفا (alpha-compositing). بسیار سریع (حدود 100 فریم بر ثانیه با کیفیت 1080p روی کارت 4090)، مشتق‌پذیر و برازش‌شده با گرادیان کاهشی (gradient descent) در برابر عکس‌های واقعیِ مبنا. برازش یک صحنه روی یک GPU معمولی بین 5 تا 30 دقیقه زمان می‌برد.

دو نوآوری کلیدی سال‌های 2023 تا 2024 روی این پایه شکل گرفت:

  • پاشش‌های گاوسی زاینده: مدل‌هایی مثل LGM، LRM و InstantMesh که ابر گاوسی را مستقیماً از یک یا چند تصویر پیش‌بینی می‌کنند.
  • پاشش گاوسی چهاربعدی: گاوسی‌هایی با جابه‌جایی‌های مجزا در هر فریم برای صحنه‌های متحرک و پویا.

دیفیوژن چندنما

تنظیم دقیق (Fine-tune) یک مدل دیفیوژنِ تصویر از‌پیش‌آموزش‌دیده برای تولید چندین نمای سازگار از یک شیء بر اساس پرامپت متنی یا یک تک‌تصویر؛ مانند Zero123 (Liu et al., 2023)، MVDream (Shi et al., 2023)، SV3D (Stability, 2024) و CAT3D (Google, 2024). این مدل‌ها معمولاً 4 تا 16 نما دور شیء خروجی می‌دهند که با پاشش گاوسی یا نرف به فرمت سه‌بعدی تبدیل می‌شوند.

پایپ‌لاین‌های متن به سه‌بعدی

مدل ورودی خروجی زمان
DreamFusion (2022) متن نرف از طریق SDS حدود 1 ساعت به ازای هر دارایی
Magic3D متن مِش + بافت حدود 40 دقیقه
Shap-E (OpenAI, 2023) متن سه‌بعدی ضمنی (implicit) حدود 1 دقیقه
SJC / ProlificDreamer متن نرف / مِش حدود 30 دقیقه
LRM (Meta, 2023) تصویر ترای‌پلین (triplane) حدود 5 ثانیه
InstantMesh (2024) تصویر مِش حدود 10 ثانیه
SV3D (Stability, 2024) تصویر نماهای جدید حدود 2 دقیقه
CAT3D (Google, 2024) 1 تا 64 تصویر نرف سه‌بعدی حدود 1 دقیقه
TripoSR (2024) تصویر مِش حدود 1 ثانیه
Meshy 4 (2025) متن + تصویر مِش PBR حدود 30 ثانیه
Rodin Gen-1.5 (2025) متن + تصویر مِش PBR حدود 60 ثانیه
Tencent Hunyuan3D 2.0 (2025) تصویر مِش حدود 30 ثانیه

جهت‌گیری سال‌های 2025 تا 2026: مدل‌های مستقیم متن به مِش با متریال‌های PBR، کاملاً مناسب برای موتورهای بازی‌سازی. بااین‌حال، استفاده از دیفیوژن چندنما به‌عنوان مرحله‌ی میانی، هنوز هم بهترین بازدهی را برای اشیای عمومی دارد.

نرف (برای آشنایی با زمینه)

میدان تابش عصبی (Mildenhall et al., 2020). یک MLP بسیار کوچک (x, y, z, view direction) را می‌گیرد و (color, density) تحویل می‌دهد. رندرینگ با انتگرال‌گیری در امتداد پرتوها انجام می‌شود. کیفیت آن در سنتز نماهای جدید روش‌های مبتنی بر مِش را شکست می‌دهد، اما رندر کردنش 100 تا 1000 برابر کندتر است. برای اغلب کاربردهای بی‌درنگ (real-time)، پاشش گاوسی جایگزین آن شده؛ هرچند در پژوهش‌ها همچنان دست بالا را دارد.

تولید سه‌بعدی · پشته‌ی دو مرحله‌ایابتدا نماها، سپس هندسه
3D GENERATION · TWO-STAGE STACKThe 2026 text-to-3D stack splits the problem in two. A multi-view diffusion model (Zero123, MVDream, SV3D) generates a ring of consistent views around the object from one photo or prompt; a reconstruction step then fits a cloud of oriented 3D Gaussians to those views by gradient descent. Rendering the splats is just projection plus alpha-compositing, which is why the result runs at real-time frame rates on a consumer GPU.تبدیل یک عکس به مداری از نماها و سپس ابری از گوسی‌هاتک‌تصویردیفیوژن چندنماییاسپلت‌های گوسی سه‌بعدی
پشته‌ی تبدیل متن به 3D در سال 2026 مسئله را به دو بخش تقسیم می‌کند. یک مدل دیفیوژن چندنمایی (Zero123، MVDream، SV3D) حلقه‌ای از نماهای همگام را در اطراف شیء از روی یک عکس یا پرامپت تولید می‌کند؛ سپس مرحله‌ی بازسازی ابری از گوسی‌های جهت‌دار سه‌بعدی را با گرادیان کاهشی بر آن نماها منطبق می‌سازد. رندر کردن اسپلت‌ها صرفاً شامل تصویر کردن و ترکیب آلفا است، به همین دلیل خروجی با نرخ فریم بلادرنگ روی پردازنده‌های گرافیکی مصرفی اجرا می‌شود.

پیاده‌سازی

اسکریپت code/main.py یک برازش ساده‌ی دوبعدی به روش «پاشش گاوسی» را پیاده می‌کند: تصویر هدفِ ساختگی (یک گرادیان نرم) را با مجموعه‌ای از پاشش‌های گاوسی دوبعدی نمایش می‌دهیم. سپس موقعیت‌ها، رنگ‌ها و کوواریانس‌ها را با گرادیان کاهشی بهینه‌سازی (optimization) می‌کنیم تا با هدف تطبیق پیدا کنند. در اینجا دو عملیات محوری را می‌بینید: رندر در گذر رو به جلو (forward pass) یعنی پاشش + ترکیب آلفا، و برازش با گرادیان کاهشی.

گام 1: پاشش گاوسی دوبعدی

def gaussian_at(x, y, gaussian):
    px, py = gaussian["pos"]
    sigma = gaussian["sigma"]
    d2 = (x - px) ** 2 + (y - py) ** 2
    return math.exp(-d2 / (2 * sigma * sigma))

گام 2: رندر از طریق جمع زدن پاشش‌ها

def render(image_size, gaussians):
    img = [[0.0] * image_size for _ in range(image_size)]
    for g in gaussians:
        for y in range(image_size):
            for x in range(image_size):
                img[y][x] += g["color"] * gaussian_at(x, y, g)
    return img

در پاشش گاوسی سه‌بعدی واقعی، گاوسی‌ها بر اساس عمق مرتب شده و ترکیب آلفا به ترتیب روی آن‌ها اعمال می‌شود. پیاده‌سازی ساده‌ی دوبعدی ما فقط آن‌ها را جمع می‌زند.

گام 3: برازش با گرادیان کاهشی

for step in range(steps):
    pred = render(size, gaussians)
    loss = mse(pred, target)
    gradients = compute_grads(pred, target, gaussians)
    update(gaussians, gradients, lr)

چالش‌ها و دام‌ها

  • ناسازگاری نماها (View inconsistency): اگر 4 نما را مستقل از هم تولید کنید و بر سر ساختار شیء توافق نداشته باشند، خروجی برازش سه‌بعدی تار می‌شود. راه‌حل: دیفیوژن چندنما با اتنشن (attention) مشترک.
  • توهم نمای پشت (Back-side hallucination): در تبدیل تک‌عکس به مدل سه‌بعدی، مدل باید وجه نادیده را از خودش ابداع کند؛ بنابراین کیفیت نهایی نوسان شدیدی خواهد داشت.
  • انفجار پاشش‌های گاوسی: اگر آموزش بدون قیدوبند پیش برود، به 10 میلیون پاشش می‌رسد و مدل بیش‌برازش (overfit) می‌کند. استفاده از قواعد ابتکاری متراکم‌سازی (densification) و هرس کردن (pruning) که در مقاله‌ی اصلی 3D-GS آمده، حیاتی است.
  • مشکلات توپولوژی: مِش‌هایی که از میدان‌های ضمنی (مانند SDFها) استخراج می‌شوند، اغلب حفره یا تلاقی درونی دارند. حتماً پیش از ارسال به محصول نهایی، یک ریمشر (مانند voxel remesh در Blender) اجرا کنید.
  • مجوز داده‌های آموزشی: داده‌های Objaverse مجوزهای مختلفی دارند؛ شرایط استفاده‌ی تجاری در مدل‌های گوناگون متفاوت است.

کاربرد عملی

کاربرد انتخاب مناسب در سال 2026
بازسازی صحنه از روی عکس پاشش گاوسی (3DGS، Gsplat، Scaniverse)
شیء سه‌بعدی از روی متن برای بازی‌ها Meshy 4 یا Rodin Gen-1.5 (خروجی PBR)
تبدیل تصویر به سه‌بعدی Hunyuan3D 2.0، TripoSR، InstantMesh
سنتز نماهای جدید از چند تصویر محدود CAT3D، SV3D
بازسازی صحنه‌های پویا پاشش گاوسی چهاربعدی
آواتار / انسان با لباس Gaussian Avatar، HUGS
پژوهش / مرزهای دانش (SOTA) هرآنچه همین هفته منتشر شده باشد

برای استفاده در پایپ‌لاین تولید بازی یا فروشگاه اینترنتی: ابزارهای Meshy 4 یا Rodin Gen-1.5 مِش‌های PBR خروجی می‌دهند که مستقیماً وارد Unity یا Unreal می‌شوند.

تحویل پروژه

خروجی را در فایل outputs/skill-3d-pipeline.md ذخیره کنید. این مهارت مشخصات پروژه‌ی سه‌بعدی را می‌گیرد (ورودی: متن / یک تصویر / چند تصویر؛ خروجی: مِش / پاشش گاوسی / نرف؛ کاربرد: رندر / بازی / واقعیت مجازی) و این موارد را تحویل می‌دهد: پایپ‌لاین (دیفیوژن چندنما + برازش، یا مدل مِش مستقیم)، مدل پایه، سقف تعداد تکرارها، پس‌پردازش توپولوژی و کانال‌های متریال مورد نیاز.

تمرین‌ها

  1. ساده. اسکریپت code/main.py را با 4، 16 و 64 گاوسی اجرا کنید. در نهایت میانگین مربعات خطا (MSE) را نسبت به تصویر هدف گزارش دهید.
  2. متوسط. کد را برای پشتیبانی از گاوسی‌های رنگی (RGB) توسعه دهید. تأیید کنید که خروجی بازسازی‌شده با الگوی رنگی هدف مطابقت دارد.
  3. سخت. با استفاده از gsplat یا Nerfstudio، یک شیء واقعی را بر اساس مجموعه‌ای از 50 عکس بازسازی کنید. زمان برازش و مقدار نهایی معیار SSIM را روی نماهای ارزیابی گزارش دهید.

اصطلاحات کلیدی

اصطلاح در گفتار رایج معنای دقیق فنی
3D Gaussian Splatting «3DGS» نمایش صحنه به‌صورت ابری از گاوسی‌های سه‌بعدی؛ رندر مشتق‌پذیر به روش ترکیب آلفا.
NeRF «میدان تابش عصبی» شبکه‌ی MLP که رنگ و چگالی را در یک نقطه‌ی سه‌بعدی برمی‌گرداند؛ رندرینگ با انتگرال‌گیری پرتوها.
Triplane «سه صفحه‌ی دوبعدی» تجزیه‌ی فضای سه‌بعدی به سه شبکه‌ی دوبعدی هم‌راستای محورها؛ بسیار ارزان‌تر از شبکه‌های حجمی.
SDS «نمونه‌برداری تقطیر امتیاز» آموزش مدل سه‌بعدی با استفاده از امتیاز دیفیوژن دوبعدی به‌منزله‌ی شبه‌گرادیان.
Multi-view diffusion «چند نما همزمان» مدل دیفیوژنی که دسته‌ای از نماهای دوربینِ هماهنگ و سازگار با یکدیگر را تولید می‌کند.
PBR «رندر مبتنی بر فیزیک» متریال شامل کانال‌های albedo، roughness، metallic و normal.
Densification «رشد دادن پاشش‌ها» قاعده‌ی ابتکاری در آموزش 3DGS برای تفکیک یا تکثیر پاشش‌ها در نواحی دارای گرادیان بالا.

نکته‌ی فنی عملیاتی: داده‌های سه‌بعدی هنوز بستر زیرساختی واحدی ندارند

برخلاف تصویر (دیفیوژن نهان + DiT) و ویدیو (DiT فضا-زمانی)، حوزه‌ی سه‌بعدی در سال 2026 هنوز یک محیط اجرای (runtime) قالب و یکپارچه ندارد. درخت تصمیم (decision tree) تولید بر اساس شیوه‌ی بازنمایی چندشاخه می‌شود:

  • نرف / ترای‌پلین: استنتاج از نوع پیمایش پرتو (ray-marching) به‌همراه یک گذر رو به جلو در MLP به ازای هر نمونه است. یک رندر 512² به میلیون‌ها بار گذر رو به جلو در MLP نیاز دارد. باید نمونه‌های پرتو را به‌شکل تهاجمی بچ کنید؛ تکنیک‌های بهینه‌سازی SDPA و xformers در اینجا کاربرد دارند.
  • دیفیوژن چندنما + بازسازی با LRM: پایپ‌لاین دو مرحله‌ای. مرحله‌ی 1 (DiT چندنما) یک سرور دیفیوژن درست مانند درس 07 است. مرحله‌ی 2 (ترنسفورمر LRM) یک گذر رو به جلوی تک‌مرحله‌ای روی نماهاست. مشخصات تأخیر (latency) کل سیستم به‌صورت «دیفیوژن + تک‌مرحله‌ای» است؛ زیرساخت سرویس‌دهی هر مرحله را متناسب با همین ساختار انتخاب کنید.
  • SDS / DreamFusion: این روش بهینه‌سازی اختصاصی برای هر شیء است، نه استنتاج ساده. برای این کار باید جاب‌های پردازشی بسازید، نه پاسخ‌دهنده‌های لحظه‌ای درخواست‌ها.

برای اکثر محصولات در سال 2026، رویکرد منطقی این است: «مدل دیفیوژن چندنما را در لحظه‌ی درخواست اجرا کنید، بازسازی به 3DGS را به‌صورت ناهمگام انجام دهید و فایل 3DGS را برای مشاهده‌ی بی‌درنگ در اختیار کاربر بگذارید». این شیوه بار کاری را به‌طور شفاف میان یک سرور استنتاج (inference server) سریع با GPU و یک بهینه‌ساز آفلاینِ کُند تقسیم می‌کند.

برای مطالعه‌ی بیشتر

سؤالات متداول

تفاوت اصلی 3D Gaussian Splatting با NeRF در چیست؟

مدل NeRF از یک شبکه MLP برای ارزیابی چگالی و رنگ در امتداد پرتوها استفاده می‌کند و رندر بسیار کُندی دارد؛ در مقابل، 3DGS صحنه را با ابرهایی از توابع گاوسی سه‌بعدی نمایش می‌دهد که با ترکیب آلفا بسیار سریع و بلادرنگ (بیش از 100 فریم بر ثانیه) رندر می‌شوند.

چرا در پایپ‌لاین‌های جدید تولید سه‌بعدی از دیفیوژن چندنما استفاده می‌شود؟

چون داده‌های سه‌بعدی بسیار کمیاب‌اند، اما مدل‌های دیفیوژن دوبعدی روی میلیاردها تصویر آموزش دیده‌اند. دیفیوژن چندنما ابتدا چندین زاویه‌ی سازگار از شیء می‌سازد و سپس این نماها به ساختار سه‌بعدی تبدیل می‌شوند.

مشکل توهم نمای پشت (Back-side hallucination) در تبدیل تک‌عکس به سه‌بعدی چگونه حل می‌شود؟

از آنجا که اطلاعات بخش‌های پنهان در یک تک‌عکس وجود ندارد، مدل‌های دیفیوژن چندنما با استفاده از مکانیزم توجه اشتراکی (shared attention) نماهای نادیده را طوری پیش‌بینی می‌کنند که با ساختار کلی شیء همخوانی داشته باشد.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.