TGViewer
NLP stuff NLP stuff @nlp_stuff · 3.86K subscribers
Post #225 1.76K
مدل‌سازی سه‌بعدی با استفاده از NeRF

ما انسان ها و به طور کلی حیوانات در ساختن نمای سه‌بعدی از اشیایی و تصاویر دوبعدیشون ماهر هستیم؛ ولی این ماجرا برای هوش مصنوعی فرق می‌کنه. فرض کنید یک تعداد عکس از یک شی (مثلا صندلی) با زاویه‌های مختلف می‌گیرم و می‌خواهیم مدل سه‌بعدی اون شی رو داشته باشیم که تصویر با هر زاویه دلخواه از اون رو بتونیم رندر بگیریم به این کار میگیم View Synthesis. برای این کار یک سری روش اولیه و ساده این بوده که از تصویر‌های دو بعدی سعی می‌کردند حجم (volume) سه‌بعدی شی رو بسازند که البته ذخیره‌سازی این volume حافظه‌ای نزدیک به چند گیگ می‌خواسته و خب قاعدتا کار به صرفه‌ای نبوده. یک دسته دیگر از روش‌ها اما سعی کرده‌اند شی سه بعدی رو به شکل یک رویه مدل کنند و پارامتر‌های معادله اون رویه رو به دست بیارند (در مقایسه با دسته قبلی، این روش‌های مثلا فقط نیاز به ۱۰ مگابایت حافظه داشته‌اند)

اما یک مقاله‌ای پارسال منتشر شد به اسم Neural Radiance Fields یا به اختصار NeRF، کاری که تو این مقاله می‌کنند اینه که یک شبکه عصبی آموزش میدن که با گرفتن تصویر در ورودی خودش، در خروجی خودش سه کانال رنگی و میزان آلفا یا opacity رو با گرفتن مختصات x,y,z و زاویه نگاه مورد نظر (تتا و فای) تولید می‌کنه. به صورت واضح‌تر یعنی شما به شبکه مثلا یک تصویر صندلی می‌دید و بهش x,y,z خودتون و زاویه دیدتون رو هم می‌دید و شبکه براتون اون نما از صندلی نسبت به اون موقعیت و زاویه رو درست میکنه؛ یعنی:
(x,y,z,theta,phi) => MLP => (R,G,B, alpha)

حالا این کار چه طوری انجام می‌پذیره؟ برای تولید تصویر دوبعدی در زاویه مورد نظر یه ray (پرتو، خط فرضی) از مرکز نگاه ما (دوربین) به هر نقطه در تصویر دوبعدی که می‌خواهیم بسازیم رد می‌کنند و ادامه می‌دهند. (این پرتو صرفا یه معادله خط در فضاست، یک خط بین دونقطه: دوربین و هر پیکسل تصویر دو بعدی) در نقاطی در طول پرتو سمپل برمی‌دارند و میانگین می‌گیرند (تقریب یک انتگرال) یعنی همونطوری که توی شکل مشخص شده مقادیر RGB و آلفا رو برای نقاط روی خط در نظر گرفته شده (که بش می‌گیم پرتو) حساب می‌کنند و میانگین این مقادیر میشه RGB و آلفا پیکسلی از تصویر دو بعدی که پرتو اون رو قطع می‌کنه. این کار رو برای چندین تصویر دوبعدی که از شی داریم انجام میدن. با این کار اون شی شکل سه‌بعدیش در وزن‌های شبکه عصبی انکود میشه و میشه هر view ازش رو ساخت.

سوال بعدی اینه که این رو چطوری آموزش میدن؟ همین کار پرتو رو انجام میدن و برای تصاویری که داریم. شبکه یسری پیکسل تولید کرده که با پیکسل های واقعی MSE، به عنوان loss می‌گیرند. تقریبا نیم‌روز طول می‌کشه برای یک جسم یاد بگیره ولی توی 30 ثانیه view تولید می‌کنه. وزن‌های شبکه عصبی هم حدود 5 مگابایت اینا میشه. دقت خیلی خوب وضوح تصویر عالی داره.

این همه حسن گفتیم اما مشکلش و جای کار بیشتر کجاست؟ باید سمپل‌های زیادی در هر پرتو برداشت که حداقل موقع inference خیلی اذیت می‌کنه، تازه هر پرتو میشه یک پیکسل، رزولوشن بالا باشه دیگه دردسر بیشتره.

یسری بحث یادگیری ویژگی‌های فرکانس بالا برای جزییات بهتر هم داره که از محدوده این پست خارجه.

مقاله:
https://arxiv.org/pdf/2003.08934

لینک مقاله‌ها و پیاده‌سازی‌هاشون برای این زمینه:
https://github.com/yenchenlin/awesome-NeRF

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

#read
#paper

@nlp_stuff
Telegram stuff
More from @nlp_stuff
  1. Jan 6, 2026اندر حکایات بازی با کلمات: AI Engineering vs ML Engineering/Data Scientist این روزها عناوی…
  2. Mar 3, 2025مفهوم Agent چیست و چگونه کار می‌کنند؟ خانم چیپ هوین بلاگ پست مفصلی راجع به Agent (به قول ر…
  3. Feb 28, 2025خلاصه‌تر فکر کن از اونجایی که در مسائل استدلالی (reasoning) ، مدل برای رسیدن به جواب نهایی…
  4. Feb 23, 2025چه قدر تا بی‌کارشدن بک‌اندی‌ها فاصله داریم؟ عمده استفاده برنامه‌نویس‌ها از LLM‌ها در سطح پ…
  5. Feb 20, 2025به سوی سیستم‌۲ پیشرفت‌های هوش مصنوعی در دهه ۲۰۱۰، مدیون آموزش مدل‌های بزرگ دیپ لرنینگی روی…
  6. Feb 8, 2025مدل‌های استدلالی (reasoning) چیست و چگونه ساخته می‌شوند؟ حتما این روزها بارها مدل‌های استد…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →