حتماً براتون پیش اومده که بخواید یه صحنه سهبعدی (یا همون 3D Scene) بسازید و دلتون بخواد که همهچی طبیعی و منطقی به نظر بیاد. مثلاً نمیخواید یه لیوان وسط هوا معلق باشه یا یه درخت توی خونه رشد کنه! اما خب بیشتر روشهای ساخت صحنههای سهبعدی فعلی واقعاً حسابی مشکل دارن و نمیتونن این روابط پیچیده و منطقی بین اشیاء رو درست مدل کنن. منظور از روابط منطقی یعنی مثلاً اینکه صندلی باید کنار میز باشه، یا لیوان روی میز قرار بگیره، نه هر جایی دلش بخواد!
اینجا یه چارچوب جدید معرفی کردن به اسم CausalStruct. اجازه بدید خیلی راحت توضیح بدم منظورشون چیه. این روش میاد سراغ علتیابی یا به اصطلاح علمیترش Causal Reasoning، که یعنی بفهمیم دلیل هر اتفاق چیه و چرا چیزی باید اونجوری باشه که هست. مثلاً چرا چراغ بالای سرمون آویزونه؟ خب چون قانون جاذبه و سازهی اتاق اینطوری اقتضا میکنه.
CausalStruct خیلی باحاله، چون داخل خودش از مدلهای زبان خیلی بزرگ (LLMها) استفاده میکنه – همونهایی که مثل چتباتهای هوشمند هستن و میتونن متن و معنی هرچیزی رو بفهمن. این مدلها کمک میکنن که بتونیم برای صحنه، یه «گراف علّی» درست کنیم. حالا گراف علّی یعنی چی؟
گراف علّی (Causal graph) یه جور نمودار هست که توش هر گره یا همون node نشونه یه شئ یا یه ویژگی از اون شئ (مثلاً رنگ، اندازه، یا حتی موقعیتش توی فضا) هست. بعد بین این گرهها، یه سری خط یا لبه (edge) کشیدن که نشون میده چه رابطه منطقی و علتمعلولی بینشون وجود داره. مثلاً «میز باید روی زمین باشه»، یا «لیوان به خاطر گرانش باید روی سطح صاف قرار بگیره».
حالا CausalStruct با کمک این گرافها میتونه صحنه رو مرحله به مرحله بهتر کنه. یعنی اول میفهمه چه چیزی باید اول توی صحنه قرار بگیره (از لحاظ منطقی)، بعد اون یکی – یعنی ترتیب درست رو رعایت میکنه. این ترتیب رو بهش میگن causal order یعنی همون نظم و ترتیب علت و معلولی.
یه ترفند عالی دیگه که توی این مقاله استفاده شده، دخالت علّی (causal intervention) هست؛ یعنی توی صحنه یه تغییر کوچیک میدن تا ببینن کل صحنه چطور واکنش نشون میده و همهچی با قوانین فیزیکی هماهنگه یا نه. با این کار صحنهای که ساخته میشه خیلی طبیعیتر و تو دنیای واقعی قابل قبول خواهد بود.
یه چیز بینظیر دیگه اینه که توی مرحله بهینهسازی صحنه (یعنی آخر کار که قراره اشیاء دقیقاً در جای درست و اندازه درستشون قرار بگیرن)، از یه کنترلر معروف به اسم PID استفاده میکنن. این PID Controller یه جور ماشین حساب هوشمنده که دائم میاد سایز و موقعیت هر شئ رو تنظیم میکنه تا همهچی باهم هندونه باشن!
این روش CausalStruct از متن یا تصویر استفاده میکنه تا بفهمه چی باید توی صحنه باشه و بعد، بر اساس همون گراف علّی و کنترلها، همهچی رو سرجاش میذاره. برای اینکه اشیاء هم واقعاً سهبعدی به نظر بیان و فرآیند رندر (یعنی همون نشون دادن تصویر نهایی) پایدار و دقیق باشه، از تکنیکی به اسم 3D Gaussian Splatting بهره میبره و برای مدلسازی بهتر شکلها هم از Score Distillation Sampling کمک میگیره. خلاصه این دوتا تکنیک باعث میشن همهچی واضح و طبیعی نمایش داده بشه.
آزمایشهایی که کردن نشون داده خروجی CausalStruct نسبت به روشهای قبلی خیلی بهتره: هم منطقیتره، هم اشیاء با هم تعامل طبیعیتری دارن و هم کلاً تو محیطهای مختلف خیلی خوب خودش رو تطبیق میده و دچار اشتباهات عجیب و غریب نمیشن.
در کل، اگه دوست داری صحنههای سهبعدی بسازی که هم با قوانین فیزیک بخونه و هم ظاهرش منطقی و حرفهای باشه، این چارچوب CausalStruct خیلی میتونه کمکت کنه!
منبع: +