Skip to content

SYiee/Post-processing-of-DreamFusion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 

Repository files navigation

Post-processing-of-DreamFusion

๐Ÿ“ฝ๏ธTrailer

https://www.youtube.com/watch?v=Exn-C6Fvxt0&t=4s

๐Ÿ“‹ ์—ฐ๊ตฌ ์†Œ๊ฐœ

Post-Processing of DreamFusion (text to 3d generation)

Motivation

๋””์ž์ด๋„ˆ๊ฐ€ ๊ฒŒ์ž„ ์ œ์ž‘์— ํ•„์š”ํ•œ 3d mesh๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋“ค ๋˜ํ•œ ๋””์ž์ด๋„ˆ๊ฐ€ ์‹œ๊ฐ„ ๋‚ด์— asset์„ ์ œ์ž‘ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜, ํŒ€์— ๋””์ž์ด๋„ˆ๊ฐ€ ์—†์–ด ์—์…‹ ์Šคํ† ์–ด์—์„œ ์›ํ•˜๋Š” 3d assets์„ ๊ตฌํ•˜์ง€ ๋ชปํ•ด ์–ด๋ ค์›€์„ ๊ฒช๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

text ๋ฅผ ์ž…๋ ฅํ•ด 2d image๋ฅผ ์ƒ์„ฑํ•ด๋‚ด๋Š” AI๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด text ๋ฅผ ์ž…๋ ฅํ•ด 3d mesh๋ฅผ ์ƒ์„ฑํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฒŒ์ž„ ์‚ฐ์—…์— ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์•„ ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Target Paper

https://github.com/ashawkey/stable-dreamfusion

What is DreamFusion?

DreamFusion์€ text๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ 3d mesh๋ฅผ ์ƒ์„ฑํ•ด๋Š” Generative AI์ž…๋‹ˆ๋‹ค. DreamFusion์˜ process๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€ ๊ณผ์ •์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Diffusion Model

    : Text to Image Generation

    ์ƒ์„ฑ ๋ชจ๋ธ์˜ ์ผ์ข…์œผ๋กœ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๋…ธ์ด์ฆˆ๋ฅผ ์กฐ๊ธˆ์”ฉ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํ•œ ๋…ธ์ด์ฆˆ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋กœ๋ถ€ํ„ฐ ์ ์ฐจ ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•ด๊ฐ€๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์›ํ•ด๋‚˜๊ฐ€๋Š” ๊ณผ์ •์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

    image

    ๊ทธ ์ค‘ Latent Diffusion Model์€ Pixel space์—์„œ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋Š” ๊ธฐ์กด Diffusion model๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋”์šฑ ์ €์ฐจ์›์ธ Latent space๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ž„๋ฒ ๋”ฉํ•ด ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋น ๋ฅธ ์†๋„์™€ ์ €๋น„์šฉ์œผ๋กœ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  2. NeRF

    : Image to 3D Mesh Generation

    ๋‹ค์–‘ํ•œ ๊ด€์ ์—์„œ์˜ ์ด๋ฏธ์ง€ ์ž…๋ ฅ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ƒ์˜ 3D ๊ณต๊ฐ„์—์„œ ์‹œ์„  ์ƒ์— ์žˆ๋Š” RGB ๊ฐ’๊ณผ Density ๊ฐ’์„ ๊ฐ€์ง„ ์ ๋“ค์„ ํ•ฉํ•˜๋ฉด์„œ ํŠน์ • ๊ด€์ ์—์„œ์˜ View๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์ด View์™€ ์›๋ณธ 2D ์ด๋ฏธ์ง€ ์‚ฌ์ด์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉฐ ํ•ด๋‹น 3D ๊ณต๊ฐ„์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์ขŒํ‘œ์˜ RGB, Density๊ฐ’์„ ์ถ”์ •ํ•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ 3D ๋ณต์›์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ, 2D image์—์„œ 3D data๋ฅผ ์ž˜ ์ƒ์„ฑํ–ˆ๋Š”๊ฐ€์— ๋Œ€ํ•œ ์ง€ํ‘œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋…ผ๋ฌธ์—์„œ๋Š” SDS๋ผ๋Š” object function์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด object function์„์—์„œ๋Š”, NeRF๊ฐ€ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋Š” 3D ๋ฐ์ดํ„ฐ(ํ˜น์€ ๊ทธ๊ฒƒ์˜ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฌผ)์˜ Volume์ด ์ •๋ง ๊ทธ ๋ฌผ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž˜ ๋ฐ˜์˜ํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ Diffusion Model์—๊ฒŒ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ›๋Š” ๊ตฌ์กฐ๋กœ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์—๋Š” ์ด ์ „์ฒด์ ์ธ ๊ณผ์ •์— ๋Œ€ํ•œ Overview๊ฐ€ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค.

image

What is the problem of DreamFusion?

์ดˆ๊ธฐ ๋ชฉํ‘œ๋Š” ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” 3D mesh๋ฅผ ๋ˆ„๊ตฌ๋‚˜ ์†์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ DreamFusion์ด ์š”๊ตฌํ•˜๋Š” Computational Cost๋Š” ๊ต‰์žฅํžˆ ๋†’์•˜์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ•„์š”ํ•œ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ์—ฐ์‚ฐ์„ ํ•˜์ง€ ๋ชปํ–ˆ๊ณ  ์˜ˆ์ƒํ•œ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ low qualiy์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

image

(์–ด๋–ค ๋ชจ๋ธ์ธ์ง€ ์‹๋ณ„์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์—” ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๋–จ์–ด์ง„๋‹ค.)

Analysis & Solution

๊ฐœ์„ ๋ฐฉํ–ฅ์„ ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๊นƒํ—ˆ๋ธŒ๋ฅผ ๋น„๋กฏํ•œ ๊ฐ์ข… ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ตœ๊ทผ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š” ์—ฐ๊ตฌ๋“ค์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. Text ๊ธฐ๋ฐ˜ 3d generation์€ ์ง€์†ํ•ด์„œ ๋ฐœ์ „ํ•ด๋‚˜๊ฐ€๊ณ  ์žˆ๋Š” ๋ถ„์•ผ๋กœ ํ™œ๋ฐœํžˆ ๋…ผ์˜๊ฐ€ ์ด๋ฃจ์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ Dreamfusion ์˜ ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ฐœ์„ ๋ฐฉ๋ฒ•๋“ค๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์–ด Dreamfusion ์œผ๋กœ ์ œ์ž‘ํ•œ 3D mesh์˜ ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•œ ํ’ˆ์งˆ ๊ฐœ์„ ์œผ๋กœ ๋ฐฉํ–ฅ์„ฑ์„ ์žก์•„ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ƒ์„ฑ๋œ 3D mesh์˜ ๊ฒฐ๊ณผ๋ฌผ์ด low quality๋กœ ๋ณด์ด๋Š” ์ด์œ ๋ฅผ ๋‹ค์Œ๊ณผ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. mesh๊ฐ€ ๊ฐ€์ง€๋Š” ๊ฑฐ์นœ ํ‘œ๋ฉด
  2. ํ…์Šค์ฒ˜์˜ noise๋ฅผ ์ถฉ๋ถ„ํžˆ ์ œ๊ฑฐํ•˜์ง€ ๋ชปํ•ด ๊ฐ€์‹œ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ

์ด ๋‘๊ฐ€์ง€ ๋ฌธ์ œ์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ํ›„์ฒ˜๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ํ’ˆ์งˆ๊ฐœ์„ ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค

image

๐Ÿ“Œ Post-Processing

์•„๋ž˜ ์‚ฌ์ง„์€ post-processing pipeline์˜ ์ „ ๊ณผ์ •์„ ๋‹ด์€ overview์ž…๋‹ˆ๋‹ค.

image

A. Improvement for Coarse Surface

  1. Subdivision : Loop Subdivision
  • ๋ฐ˜๋ณต์ ์œผ๋กœ ์ƒˆ๋กœ์šด faces & vertexes๋ฅผ ๋งŒ๋“ค์–ด๋ƒ„์œผ๋กœ์จ Resolution์„ ๋†’์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • Effect : ์ด์–ด์ง€๋Š” Remeshing ๊ณผ์ •์—์„œ Resolution์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ๋Œ€๋น„ํ•ด vertices upsampling
  • Reference : โ€œSmooth Subdivision Surfaces Based on Trianglesโ€, Charles Loop

image

  1. Remeshing: Isometric Remeshing
  • Edge๋ฅผ ๋ถ„ํ• ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ, ๋ถˆ๊ทœ์น™ํ•œ ๋ชจ์–‘์˜ ์‚ผ๊ฐํ˜•๋“ค์„ ์ •์‚ผ๊ฐํ˜•์— ๊ฐ€๊น๊ฒŒ ๋ฐ”๊พธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • Effect : ๋Œ€์ƒ์˜ ํŠน์ง•์„ ์œ ์ง€ํ•˜๋ฉด์„œ, ๊ฑฐ์นœ ํ‘œ๋ฉด์„ smoothingํ•˜๋Š” ํšจ๊ณผ
  • Reference : โ€œGeneric remeshing of 3D triangular meshes with metric-dependent discrete Voronoi Diagramsโ€, IEEE 2008

image

  1. Laplacian Smoothing
    1. mesh์˜ ๊ฐ vertex์— ๋Œ€ํ•ด ๋ผํ”Œ๋ผ์‹œ์•ˆ ์—ฐ์‚ฐ์ž๋ฅผ ๊ณ„์‚ฐ
      • ๋ผํ”Œ๋ผ์‹œ์•ˆ ์—ฐ์‚ฐ์ž: ๋ฉ”์‰ฌ์˜ ๊ตฌ์กฐ์™€ ์—ฐ๊ฒฐ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰๋ ฌ๋กœ, ๊ฐ ์ •์ ์˜ ์ด์›ƒ๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค. ์ •์ ๊ณผ ์ด์›ƒ ์ •์  ๊ฐ„์˜ ๊ฑฐ๋ฆฌ ๋˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ์ž๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
    2. Smoothing Iteration
      1. ๋ผํ”Œ๋ผ์‹œ์•ˆ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์ •์ ์˜ ์œ„์น˜๋ฅผ ํ˜„์žฌ ์œ„์น˜์™€ ์ธ์ ‘ํ•œ ์ •์ ์˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ
      2. ์—…๋ฐ์ดํŠธ๋œ ์ •์  ์œ„์น˜๋กœ mesh๋ฅผ ์—…๋ฐ์ดํŠธ
      3. mesh์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์Œ iteration์—์„œ ์‚ฌ์šฉ๋  ๋ผํ”Œ๋ผ์‹œ์•ˆ ์—ฐ์‚ฐ์ž๋ฅผ ์—…๋ฐ์ดํŠธ
  • Effect : ์ด์›ƒ vertex์˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ํ˜„์žฌ vertex๋ฅผ updateํ•˜๋ฉฐ ๋ชจ๋“  vertex๋ฅผ ์ˆœํšŒํ•˜๋Š” iteration์„ ๋Œ๋ฉด์„œ ๋งค๋ˆํ•œ ํ‘œํ˜„์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • Reference : โ€œImproved Laplacian Smoothing of Noisy Surface Meshes" J. Vollmer, R. Mencl, and H. Muller*

image

  1. DDMP
  • Input : ๋‹จ์ผ noisyํ•œ mesh ๋ฐ smoothing๋œ mesh
  • Process : 2๊ฐœ์˜ GCN(PosNet, NormNet)์„ ์‚ฌ์šฉํ•ด, ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ mesh๋ฅผ denoising
  • Effect :
    • ์‚ฌ์ „ ํ›ˆ๋ จ๋ฐ์ดํ„ฐ๋‚˜ Noise๊ฐ€ ์—†๋Š” ์›๋ณธ mesh์—†์ด๋„, noisyํ•œ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ํ˜•ํƒœ ๋ฐ ๋””ํ…Œ์ผ์„ ์ตœ๋Œ€ํ•œ ๋ณด์กดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ denoising๊ฐ€๋Šฅ. (self-prior)
    • noisy level์— ๋”ฐ๋ผ ์ˆ˜๋™์œผ๋กœ denoising step์„ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Œ.
  • Reference : โ€œLearning Self-prior for Mesh Denoising using Dual Graph Convolutional Networksโ€,ย ECCV2022*

image

B. Improvement for Texture Noise

  1. Upscaling: ESPCN(Efficient Sub-Pixel Convolutional Neural Network)
  • Texture ์ฒ˜๋ฆฌ ์‹œ ํ˜•์งˆ(ํŠน์งˆ)๋ณด์กด์„ ์œ„ํ•œ ์ž‘์—…

image

  1. Denoising : Non Local Mean Filter

image

  1. Color Quantization : K-Means Clustering
  • ๊ฐ€์‹œ์„ฑ ๋ณด์™„์„ ์œ„ํ•œ ๊ธฐ์ˆ 
  • Pixel๋“ค์˜ Color๊ฐ’์„ K-Means Clustering์„ ํ†ตํ•ด ์ •๋ ฌ

image


๐Ÿ› ๏ธ Skills & Tools

  • Unreal Engine 5
  • CUDA
  • PyTorch
  • Python

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published