Може би сте чували колко мощни са станали моделите на AI текст към изображение през последните няколко години. Но знаете ли, че същата технология може да помогне да се направи скок от 2D към 3D?
Генерираните от AI 3D модели имат широко приложение в днешния цифров пейзаж. Видео игри и филмът разчитат на квалифицирани 3D художници и софтуер за моделиране, като Blender, за създаване на 3D активи за попълване на компютърно генерирани сцени.
Възможно ли е обаче индустрията да използва машинно обучение за създаване на 3D активи с по-малко усилия, подобно на начина, по който 2D художниците днес започват да възприемат технологии като DALL-E и По средата на пътуването?
Тази статия ще изследва нов алгоритъм, който се опитва да създаде ефективен текст към 3D модел, използвайки съществуващ дифузионни модели.
Какво е Dreamfusion?
Един основен проблем при създаването на дифузионен модел, който генерира директно 3D активи, е, че просто няма много налични 3D данни. 2D дифузионните модели станаха толкова мощни поради огромния набор от изображения, намерени в интернет. Същото не може да се каже за 3D активи.
Някои 3D генеративни техники заобикалят тази липса на данни, като се възползват от това изобилие от 2D данни.
DreamFusion е генеративен модел, който може да създава 3D модели въз основа на предоставено текстово описание. Моделът DreamFusion използва предварително обучен модел за разпространение на текст към изображение, за да генерира реалистични триизмерни модели от текстови подкани.
Въпреки че няма данни за 3D обучение, този подход е генерирал съгласувани 3D активи с външен вид и дълбочина с висока точност.
Как работи?
Алгоритъмът DreamFusion се състои от два основни модела: 2D модел на дифузия и невронна мрежа който може да преобразува 2D изображения в сплотена 3D сцена.
Моделът Imagen Text-to-Image на Google
Първата част от алгоритъма е дифузионният модел. Този модел отговаря за преобразуването на текст в изображения.
Изображение е дифузионен модел, който може да генерира голяма извадка от вариации на изображение на конкретен обект. В този случай нашите варианти на изображението трябва да покриват всички възможни ъгли на предоставения обект. Например, ако искаме да генерираме 3D модел на кон, бихме искали 2D изображения на коня от всички възможни ъгли. Целта е да използваме Imagen, за да предоставим възможно най-много информация (цветове, отражения, плътност) за следващия модел в нашия алгоритъм.
Създаване на 3D модели с NeRF
След това Dreamfusion използва модел, известен като a Невронно радиационно поле или NeRF, за да създадете действително 3D модела от генерирания набор от изображения. NeRFs са в състояние да създават сложни 3D сцени с набор от данни от 2D изображения.
Нека се опитаме да разберем как работи NeRF.
Моделът има за цел да създаде функция за непрекъсната обемна сцена, оптимизирана от предоставения набор от данни от 2D изображения.
Ако моделът създава функция, какви са входът и изходът?
Функцията за сцена приема 3D местоположение и 2D посока на гледане като вход. След това функцията извежда цвят (под формата на RGB) и специфична обемна плътност.
За да генерира 2D изображение от конкретна гледна точка, моделът ще генерира набор от 3D точки и ще прекара тези точки през функцията за сцена, за да върне набор от стойности на цветова и обемна плътност. Техниките за обемно изобразяване след това ще преобразуват тези стойности в изход на 2D изображение.
Използване на NeRF и 2D дифузионни модели заедно
След като вече знаем как работи NeRF, нека видим как този модел може да генерира точни 3D модели от нашите генерирани изображения.
За всяка предоставена текстова подкана DreamFusion обучава произволно инициализиран NeRF от нулата. Всяка итерация избира произволна позиция на камерата в набор от сферични координати. Помислете за модела, обвит в стъклена сфера. Всеки път, когато генерираме ново изображение на нашия 3D модел, ще изберем произволна точка в нашата сфера като гледна точка на нашия изход. DreamFusion също ще избере произволна позиция на светлината l да се използва за изобразяване.
След като имаме камера и позиция на светлината, ще бъде рендиран NeRF модел. DreamFusion също ще избира на случаен принцип между цветно изобразяване, изобразяване без текстура и изобразяване на албедото без засенчване.
По-рано споменахме, че искаме нашият модел текст към изображение (Imagen) да произвежда достатъчно изображения, за да създадем представителна извадка.
Как Dreamfusion постига това?
Dreamfusion просто леко променя подканата за въвеждане, за да постигне желаните ъгли. Например, можем да постигнем големи ъгли на повдигане, като добавим „изглед отгоре“ към нашата подкана. Можем да генерираме други ъгли, като добавим фрази като „изглед отпред“, „изглед отстрани“ и „изглед отзад“.
Сцените се изобразяват многократно от произволни позиции на камерата. След това тези изобразявания преминават през функция за загуба на резултат от дестилация. Един прост подход на градиентно спускане бавно ще подобри 3D модел докато съвпадне със сцената, описана в текста.
След като изобразим 3D модела с помощта на NeRF, можем да използваме Алгоритъм на Marching Cubes за извеждане на 3D мрежа на нашия модел. След това тази мрежа може да бъде импортирана в популярни 3D програми за изобразяване или софтуер за моделиране.
Ограничения
Докато продукцията на DreamFusion е достатъчно впечатляваща, тъй като използва съществуващи модели за разпространение на текст към изображение по нов начин, изследователите са отбелязали няколко ограничения.
Наблюдавано е, че функцията за загуба на SDS дава пренаситени и прекалено изгладени резултати. Можете да забележите това в неестественото оцветяване и липсата на точни детайли, открити в резултатите.
Алгоритъмът DreamFusion също е ограничен от разделителната способност на изходния модел на Imagen, който е 64 x 64 пиксела. Това води до липса на по-фини детайли в синтезираните модели.
И накрая, изследователите отбелязват, че има присъщо предизвикателство при синтезирането на 3D модели от 2D данни. Има много възможни 3D модели, които можем да генерираме от набор от 2D изображения, което прави оптимизацията доста трудна и дори двусмислена.
Заключение
3D визуализациите на DreamFusion работят толкова добре поради способността на моделите за разпространение на текст към изображение да създават всеки обект или сцена. Впечатляващо е как една невронна мрежа може да разбере сцена в 3D пространство без никакви данни за 3D обучение. Препоръчвам да прочетете цяла хартия за да научите повече за техническите подробности на алгоритъма DreamFusion.
Надяваме се, че тази технология ще се подобри, за да създаде в крайна сметка фотореалистични 3D модели. Представете си цели видеоигри или симулации, които използват среди, генерирани от AI. Може да намали бариерата за навлизане на разработчиците на видеоигри, за да създават потапящи 3D светове!
Каква роля смятате, че ще играят моделите от текст към 3D в бъдеще?
Оставете коментар