Elevating 3D Models: High-Quality Texture and Geometry Refinement from a Low-Quality Model[2025 SIGGRAPH]

이한결·2025년 7월 30일

낮은 품질의 3D model을 입력으로 받아서 이를 refinement하는 모델입니다. Elevate3D는 한 view씩 차례로 texture를 개선하고 이를 기반으로 geometry를 다시 개선하는 과정을 반복합니다.

HFS-SDEdit for Image Refinement

SDEdit

SDEdit은 Elevate3D에서 high-quality와 high-fidelity texture를 반영하기 위한 중요한 역할을 합니다. 따라서 아래의 내용은 SDEdit에 대한 리뷰에 대해서 간략히 작성하도록 하겠습니다.

SDEdit은 이미지 편집이나 생성에 사용되는 diffusion model 기반 방법입니다. 구체적으로 이미지에 대한 스케치(low-level guide)가 들어오면 이를 기반으로 현실적인 이미지를 생성합니다.

Guide image IrI_r의 latent space를 zrz_r이라고 했을 때 는 위와 같이 guide image를 노이즈화 해서 얻을 수 있습니다. Timestep tst_s는 0부터 1사이의 값이고 값이 클수록 현실적인 이미지를 생성하지만 guide의 역할이 작아지고, 반대로 작을수록 guide의 역할은 커지지만 현실적인 이미지의 생성이 어렵습니다.

HFS-SDEdit

이전에 말한 fidelity-quality trade-off를 극복하기 위해서 HFS-SDEdit은 reference image의 고주파 정보를 사용하는 방식을 사용했습니다.

z~t\tilde{z}_t는 SDEdit에서처럼 reference image에 노이즈를 추가한 latnet, z^t\hat{z}_t는 diffusion 모델이 현재까지 진행한 standard denoising 결과입니다. GσG_{\sigma}는 guassian blur filter로 저주파만 남기는 필터입니다. 따라서 ztz^’_t는 고주파 정보는 z~t\tilde{z}_t에서 저주파 정보는 z^t\hat{z}_t에서 가져오도록 한 것입니다.

z^t\hat{z}_t 값이 조금 헷갈릴 수 있는데, 해당값은 SDEdit의 수식에서 tst_s의 노이즈된 값 ztsz_{t_s}를 얻는데 여기서 timestep t까지의 노이즈된 결과입니다.

Timestep t는 미리 정의된 시점인 tstopt_{stop}까지 진행하면서 디테일이 보존된 이미지를 얻습니다.

기존 SDEdit은 많은 노이즈를 추가해 low-frequency 정보를 제거하고 이를 다시 생성함으로써 현실적인 이미지를 생성합니다. 그러나 이 과정에서 high-frequency 정보까지 손실되어 디테일이 떨어진 결과가 나타납니다. 반대로 노이즈를 적게 추가하면 high-frequency 정보만 제거되므로 도메인은 유지되지만 전반적인 품질은 낮은 결과가 됩니다.

Quality와 fidelity를 모두 잡기 위해서 많은 노이즈로 전체 구조를 리셋하면서, high-frequency 정보를 reference image에서 가져오게 HFS-SDEdit을 설계 했습니다. 위의 이미지를 보면 b에서 quality는 좋지만, fidelity가 낮은 경우, d를 보면 반대로 quality는 안좋지만 fidelity가 높은 경우, a를 보면 2개 모두 높은 경우를 나타냅니다.

Elevate3D

Elevate3D는 low-quality mesh를 점점 더 high-quality로 바꾸는 과정을 설명합니다. 카메라 시점을 따라 반복적으로 위의 아키텍처처럼 texture와 geometry를 refinement합니다. Texture를 refine한 결과를 이용해서 geometry를 refinement하고, 이를 이용해서 다시 texture를 refinement 하는 과정을 반복합니다. 이를 통해서 high-qaulity image priors를 이용할 수 있고, 시점마다 refinement를 진행하기 때문에 전체적으로 일관성 있는 3D 결과를 생성할 수 있고 마지막으로 texture와 geometry의 alignment가 정확하게 이루어집니다.

Texture Refinement with HFS-SDEdit

i시점에서의 mesh MiM_iviv_i시점에서 렌더링한 이미지 IiI_i를 얻습니다. Initial image IiI_i에는 그림 (a)에서 보이는 것처럼 i시점 이전에 refine된 부분도 존재하고, refine이 되지 않는 부분도 존재합니다. Refine 되지 않은 부분만을 얻기 위해서 refinement mask mim_i를 생성합니다. Refinement mask는 현재시점에서 보이는 normal vector를 계산해서 이전 시점들의 카메라 방향과 비교하여 cosine similarity(각도 차이)가 60도 이상 나는 경우만 고릅니다. Mask에 이전에 refine 한 부분도 포함될 수 있지만, 비스듬히 보이는 영역을 더 정밀하게 개선하려는 목적으로 허용합니다.

이렇게 initial image IiI_i와 refinement mask mim_i를 얻으면 이를 HFS-SDEdit에 넣어서 refine된 image IiI^’_i를 얻습니다. HFS-SDEdit을 사용하기 위해서 이전에 설명한 z~t\tilde{z}_tztz^’_t를 얻고 이전에 사용한 수식을 이용합니다.

Refinement mask를 적용하기 위해서 z~t\tilde{z}_t 부분만 downsample한 마스크로 명시하고, 나머지 부분은 ztz^’_t를 사용하도록 위의 수식을 적용했습니다. 이렇게 얻은 latent z^t\hat{z}_t를 이용해서 denoising을 진행해서 refined image를 얻습니다.

Geometry Refinement with Refined Texture

Refined image는 texture만 향상된게 아니라 geometry에 대한 힌트도 담고 있습니다. 이를 이용해서 normal을 추정하는 Wonder3D로부터 normal map을 추출합니다. 추정된 normal로부터 mesh를 refine한 SiS_i를 얻습니다. 하지만 normal은 단순히 이미지로부터 추정한 값이기 때문에 SiS_iMiM_i에 붙이면 왜곡이 발생할 수 있습니다.

따라서 regularized normal integration을 통해서 기존 mesh MiM_i와의 consistency를 보장합니다. Regularized normal integration은 첫번째로 SiS_i의 기울기가 nin_i와 맞도록 하고, 두번째로 동일한 지점에서의 depth는 서로 비슷하도록 합니다. Regularized normal integration E(z)는 각각의 term을 통해서 이전의 목표를 달성합니다. E(z)를 최소화하면서 2가지 조건을 만족할 수 있게 됩니다. E(z)를 최소화하는 방식은 ‘Bilateral Normal Integration.’의 논문과 동일하게 구성했습니다.

E(z)를 최소화하면서 얻은 새로운 geometry SiS_i는 원래 mesh MiM_i의 일부일 뿐이기 때문에 두부분이 자연스럽게 이어붙이기 위해서 poisson surface reconstruction을 사용합니다.

위의 그림에서 (a)는 현재까지의 결과물, (b)는 텍스처를 기반으로 geometry를 refinement한 부분을, (c)는 a에서 현재 시점에서는 보이지 않는 부분으로 geometry refinement 부분에서 제외됩니다. (a)~(c)를 바탕으로 최종적으로 refine된 결과가 (d)입니다.

이렇게 향상된 geoemtry에 기존의 texture image IiI^’_i를 project시켜서 MiM_i를 업데이트한 mesh Mi+1M_{i+1}를 얻습니다. Texture를 projection시킬 때는 UV-free texture mapping를 적용시켰습니다.

Experiments

Implementation Details

FLUX 모델을 통해서 texture image를 refine하고, 전체 timestep은 30, tst_s는 29, tstopt_{stop}은 19로 설정했습니다. Gaussian low-pass filter의 σ\sigma는 4, depth regularization에서 λ\lambda는 0.008로 설정했습니다.

Evaluation of Elevate3D

Google Scanned Objects(GSO) 데이터셋에 대해서 polygon 수를 20% 줄이고, gaussian blur(=8)을 적용해서 3D 모델을 저품질로 만든다음에 복원능력에 대해서 DreamGaussian, MagicBoost, DiSR-NeRF, Elevate3D에 대해서 성능을 비교했습니다.

기존 방식들에 비해서 확실히 디테일한 texture와 geometry를 갖습니다.

MUSIQ(Multi-scale Image Quality Transformer): 전반적 이미지 품질(여러 해상도에 대해 평가)

LIQE(Language-Image Quality Evaluator): Text와 align되는 정도

TOPIQ(Top-down Image Quality): 이미지의 내용과 왜곡 정보를 분석

Q-Align(Quality-Alignment): texture 패턴과 geometry 윤곽선 normal map등의 consistency 분석

Text-to-3D 모델 TRELLIS에서 Elevate3D를 추가로 적용했을 때 확실히 개선되는 것을 확인할 수 있습니다.

Limitation

모든 시점에 대해서 refine하다보니 속도 측면에서 개선 여지가 필요하다고 언급했습니다.

profile
열정으로 가득할 페이지

0개의 댓글