📝
Awesome reviews
  • Welcome
  • Paper review
    • [2022 Spring] Paper review
      • RobustNet [Eng]
      • DPT [Kor]
      • DALL-E [Kor]
      • VRT: A Video Restoration Transformer [Kor]
      • Barbershop [Kor]
      • Barbershop [Eng]
      • REFICS [ENG]
      • Deep texture manifold [Kor]
      • SlowFast Networks [Kor]
      • SCAN [Eng]
      • DPT [Kor]
      • Chaining a U-Net With a Residual U-Net for Retinal Blood Vessels Segmentation [Kor]
      • Chaining a U-Net With a Residual U-Net for Retinal Blood Vessels Segmentation [Eng]
      • Patch Cratf : Video Denoising by Deep Modeling and Patch Matching [Eng]
      • LAFITE: Towards Language-Free Training for Text-to-Image Generation [Kor]
      • RegSeg [Eng]
      • D-NeRF [Eng]
      • SimCLR [Kor]
      • LabOR [Kor]
      • LabOR [Eng]
      • SegFormer [Kor]
      • Self-Calibrating Neural Radiance Fields [Kor]
      • Self-Calibrating Neural Radiance Fields [Eng]
      • GIRAFFE [Kor]
      • GIRAFFE [Eng]
      • DistConv [Kor]
      • SCAN [Eng]
      • slowfastnetworks [Kor]
      • Nesterov and Scale-Invariant Attack [Kor]
      • OutlierExposure [Eng]
      • TSNs [Kor]
      • TSNs [Eng]
      • Improving the Transferability of Adversarial Samples With Adversarial Transformations [Kor]
      • VOS: OOD detection by Virtual Outlier Synthesis [Kor]
      • MultitaskNeuralProcess [Kor]
      • RSLAD [Eng]
      • Deep Learning for 3D Point Cloud Understanding: A Survey [Eng]
      • BEIT [Kor]
      • Divergence-aware Federated Self-Supervised Learning [Eng]
      • NeRF-W [Kor]
      • Learning Multi-Scale Photo Exposure Correction [Eng]
      • ReActNet: Towards Precise Binary Neural Network with Generalized Activation Functions [Eng]
      • ViT [Eng]
      • CrossTransformer [Kor]
      • NeRF [Kor]
      • RegNeRF [Kor]
      • Image Inpainting with External-internal Learning and Monochromic Bottleneck [Eng]
      • CLIP-NeRF [Kor]
      • CLIP-NeRF [Eng]
      • DINO: Emerging Properties in Self-Supervised Vision Transformers [Eng]
      • DINO: Emerging Properties in Self-Supervised Vision Transformers [Kor]
      • DatasetGAN [Eng]
      • MOS [Kor]
      • MOS [Eng]
      • PlaNet [Eng]
      • MAE [Kor]
      • Fair Attribute Classification through Latent Space De-biasing [Kor]
      • Fair Attribute Classification through Latent Space De-biasing [Eng]
      • Learning to Adapt in Dynamic, Real-World Environments Through Meta-Reinforcement Learning [Kor]
      • PointNet [Kor]
      • PointNet [Eng]
      • MSD AT [Kor]
      • MM-TTA [Kor]
      • MM-TTA [Eng]
      • M-CAM [Eng]
      • MipNerF [Kor]
      • The Emergence of Objectness: Learning Zero-Shot Segmentation from Videos [Eng]
      • Calibration [Eng]
      • CenterPoint [Kor]
      • YOLOX [Kor]
    • [2021 Fall] Paper review
      • DenseNet [Kor]
      • Time series as image [Kor]
      • mem3d [Kor]
      • GraSP [Kor]
      • DRLN [Kor]
      • VinVL: Revisiting Visual Representations in Vision-Language Models [Eng]
      • VinVL: Revisiting Visual Representations in Vision-Language Models [Kor]
      • NeSyXIL [Kor]
      • NeSyXIL [Eng]
      • RCAN [Kor]
      • RCAN [Eng]
      • MI-AOD [Kor]
      • MI-AOD [Eng]
      • DAFAS [Eng]
      • HyperGAN [Eng]
      • HyperGAN [Kor]
      • Scene Text Telescope: Text-focused Scene Image Super-Resolution [Eng]
      • Scene Text Telescope: Text-focused Scene Image Super-Resolution [Kor]
      • UPFlow [Eng]
      • GFP-GAN [Kor]
      • Federated Contrastive Learning [Kor]
      • Federated Contrastive Learning [Eng]
      • BGNN [Kor]
      • LP-KPN [Kor]
      • Feature Disruptive Attack [Kor]
      • Representative Interpretations [Kor]
      • Representative Interpretations [Eng]
      • Neural Discrete Representation Learning [KOR]
      • Neural Discrete Representation Learning [ENG]
      • Video Frame Interpolation via Adaptive Convolution [Kor]
      • Separation of hand motion and pose [kor]
      • pixelNeRF [Kor]
      • pixelNeRF [Eng]
      • SRResNet and SRGAN [Eng]
      • MZSR [Kor]
      • SANforSISR [Kor]
      • IPT [Kor]
      • Swin Transformer [kor]
      • CNN Cascade for Face Detection [Kor]
      • CapsNet [Kor]
      • Towards Better Generalization: Joint Depth-Pose Learning without PoseNet [Kor]
      • CSRNet [Kor]
      • ScrabbleGAN [Kor]
      • CenterTrack [Kor]
      • CenterTrack [Eng]
      • STSN [Kor]
      • STSN [Eng]
      • VL-BERT:Visual-Linguistic BERT [Kor]
      • VL-BERT:Visual-Linguistic BERT [Eng]
      • Squeeze-and-Attention Networks for Semantic segmentation [Kor]
      • Shot in the dark [Kor]
      • Noise2Self [Kor]
      • Noise2Self [Eng]
      • Dynamic Head [Kor]
      • PSPNet [Kor]
      • PSPNet [Eng]
      • CUT [Kor]
      • CLIP [Eng]
      • Local Implicit Image Function [Kor]
      • Local Implicit Image Function [Eng]
      • MetaAugment [Eng]
      • Show, Attend and Tell [Kor]
      • Transformer [Kor]
      • DETR [Eng]
      • Multimodal Versatile Network [Eng]
      • Multimodal Versatile Network [Kor]
      • BlockDrop [Kor]
      • MDETR [Kor]
      • MDETR [Eng]
      • FSCE [Kor]
      • waveletSR [Kor]
      • DAN-net [Eng]
      • Boosting Monocular Depth Estimation [Eng]
      • Progressively Complementary Network for Fisheye Image Rectification Using Appearance Flow [Kor]
      • Syn2real-generalization [Kor]
      • Syn2real-generalization [Eng]
      • GPS-Net [Kor]
      • Frustratingly Simple Few Shot Object Detection [Eng]
      • DCGAN [Kor]
      • RealSR [Kor]
      • AMP [Kor]
      • AMP [Eng]
      • RCNN [Kor]
      • MobileNet [Eng]
  • Author's note
    • [2022 Spring] Author's note
      • Pop-Out Motion [Kor]
    • [2021 Fall] Author's note
      • Standardized Max Logits [Eng]
      • Standardized Max Logits [Kor]
  • Dive into implementation
    • [2022 Spring] Implementation
      • Supervised Contrastive Replay [Kor]
      • Pose Recognition with Cascade Transformers [Eng]
    • [2021 Fall] Implementation
      • Diversity Input Method [Kor]
        • Source code
      • Diversity Input Method [Eng]
        • Source code
  • Contributors
    • [2022 Fall] Contributors
    • [2021 Fall] Contributors
  • How to contribute?
    • (Template) Paper review [Language]
    • (Template) Author's note [Language]
    • (Template) Implementation [Language]
  • KAIST AI
Powered by GitBook
On this page
  • Self-Calibrating Neural Radiance Fields [Kor]
  • 1. Problem definition
  • 2. Motivation
  • Related work
  • Idea
  • 3. Method
  • Differentiable Camera Model
  • Loss
  • Curriculum Learning
  • 4. Experiment & Result
  • Experimental Setup
  • Improvement over NeRF
  • Ablation Study
  • 5. Conclusion
  • Summary
  • Personal Opinion
  • Take home message
  • Author information
  • Reference & Additional materials

Was this helpful?

  1. Paper review
  2. [2022 Spring] Paper review

Self-Calibrating Neural Radiance Fields [Kor]

Jeong et al. / Self-Calibrating Neural Radiance Fields / ICCV 2021

PreviousSegFormer [Kor]NextSelf-Calibrating Neural Radiance Fields [Eng]

Last updated 2 years ago

Was this helpful?

Self-Calibrating Neural Radiance Fields [Kor]

**** of this article is available.

1. Problem definition

해당 논문(약칭 SCNeRF) 에서는 하나의 장면(scene)을 촬영한 여러장의 이미지가 입력으로주어졌을 때, 이미지를 촬영할 때 사용된 카메라의 intrinsic/extrinsic 파라미터와 해당 장면(scene)의 기하학적구조(geometry)를 표현하는 Neural Radiance Field 파라미터를 동시에 학습합니다. 일반적으로 카메라의 intrinsic/extrinsic을 추정할 때는 격자무늬패턴판(checker board)과 같은 보정물체(calibration object)를 촬영한 이미지가 필요하지만 해당 논문에서는 보정물체(calibration object)를 촬영한 이미지 없이 캘리브레이션 수행이 가능합니다.

수식으로는 아래와 같이 표현할 수 있습니다.

Find K,R,t,k,ro,rd,θK, R, t, k, r_{o}, r_{d}, \thetaK,R,t,k,ro​,rd​,θ, when

r=(ro,rd)=fcam(K,R,t,k,ro,rd)\mathbf{r}=(\mathbf{r_o}, \mathbf{r_d})=f_{cam}(K, R, t, k, r_o, r_d)r=(ro​,rd​)=fcam​(K,R,t,k,ro​,rd​)

C^(r)=fnerf(r;θ)\hat{\mathbf{C}}(\mathbf{r})=f_{nerf}(\mathbf{r};\theta)C^(r)=fnerf​(r;θ)

여기서 r\mathbf{r}r은ray, ro\mathbf{r_o}ro​와 rd\mathbf{r_d}rd​는 ray의 origin과 direction, fcamf_{cam}fcam​은 카메라 파라미터로부터 ray를 생성해내는 함수, (K,R,t,k,ro,rd)(K,R,t,k,r_o,r_d)(K,R,t,k,ro​,rd​)는 카메라 calibration 파라미터, C^(r)\hat{\mathbf{C}}(\mathbf{r})C^(r)는 ray r\mathbf{r}r에 대한 color 추정값, θ\thetaθ는 Neural Radiance Field 모델 파라미터, fnerff_{nerf}fnerf​는 ray가 주어졌을 때 θ\thetaθ를 이용하여 이미지를 rendering하는 함수를 의미합니다.

기존의 방법들은 카메라 파라미터를 알고있다는 가정 하에 scene의 geometry만 학습하거나, scene geometry에 대한 학습 없이 카메라 파라미터만을 학습했다면, 본 논문의 목적은 (K,R,t,k,ro,rd)(K,R,t,k,r_o,r_d)(K,R,t,k,ro​,rd​)와 θ\thetaθ를 동시에 학습하는 것입니다.

2. Motivation

Related work

Camera Model

간결성과 보편성 때문에 기존의 3D 비전 연구들은 핀홀 카메라 모델 가정을 많이 사용해왔습니다. 그러나, 카메라 모델의 발전과 함께 어안렌즈 카메라, 일반화모델 등 다양한 종류의 카메라 모델이 등장했고, 기본적인 핀홀 카메라 모델은 이런 복잡한 형태의 카메라 모델을 표현하는 것에 한계가 존재합니다.

Camera Self-Calibration

self-calibration은 카메라 파라미터를 별도의 보정물체(calibration object)(ex 체커보드패턴) 없이도 찾아내고자 하는 연구분야입니다. 많은 경우, 보정물체(calibration object)를 촬영한 이미지를 구하는 것은 불가능하기 때문에 (예를들어 인터넷에서 크롤링한 이미지 사용하는 경우) 보정물체(calibration object)가 없이도 카메라 캘리브레이션을 수행하는 self-calibration은 중요한 연구 분야입니다. 하지만, 기존의 self-calibration 방법들은 온전히 기하학적구조손실함수(geometric loss) 에 의존하거나, 희소(sparse)한 대응점간의 정보만을 이용하는 에피폴라 기하(epipolar geometry)에 의존하고 있습니다. 이러한 방법든은 촬영된 장면(scene)에 충분한 특징점이 존재하지 않을 때 noise에 극도로 민감해져 결과가 발산하고만다는 단점이 존재합니다. 또한 더 정확한 장면(scene)의 기하학적구조(geometry)를 알 수록 더 정확한 카메라 모델을 얻을 수 있음에도 불구하고, 기존의 self-calibration 방법들은 기하학적구조(geometry)를 개선하거나 학습하는 과정을 포함하지 않습니다.

Neural Radiance Fields(NeRF) for Novel View Synthesis

NeRF는 학습시 사용되었던 이미지와는 다른 각도에서 장면(scene)을 바라보는 novel view image를 생성해내는 연구이며, 이를 위해 장면(scene)마다 별도로 정의되는 네트워크를 학습합니다. 장면(scene)에 내재된 연속적인(continuouse) volumetric scene function을 희소한(sparse) 입력 이미지들만을 이용하여 학습했다는 데 의의가 있으며, 논문이 공개되었을 당시 NeRF는 novel view systhesis 분야에서 최고의 성능을 보였습니다. 하지만 NeRF를 학습하기 위해서는, 학습하고자 하는 장면(scene)의 RGB 이미지 뿐 아니라 각 이미지에 대응되는 카메라 포즈와 카메라 파라미터가 추가적으로 필요합니다.

Idea

해당 논문에서는

  • 핀홀 카메라 모델의 한계를 극복하기 위하여 핀홀 카메라 모델 파라미터 뿐 아니라, 비선형 카메라 왜곡을 표현할 수 있는 파라미터들(4차 방사 왜곡 파라미터, 일반 오차 파라미터)을 학습에 포함하였습니다.

  • 기존 self-calibration 방법들이 사용해왔던 기하학적구조손실함수(geometric loss)의 한계를 극복하기 위하여 측광일관성손실값(photometric consistency loss)를 추가적으로 사용하였습니다.

  • 개선된 기하학적구조(geometry)정보를 이용하여 더 정확한 카메라 모델을 얻기 위해, NeRF를 이용해 표현된 기하학적구조(geometry)가 카메라 파라미터와 함께 학습되었습니다.

3. Method

Differentiable Camera Model

Pinhole Camera Model

핀홀 카메라 모델은 동차 좌표계(homogeneous coordinate)로 표현된 3차원 공간상의 4-vector P4×1P_{4 \times 1}P4×1​를 동차 좌표계로 표현된 이미지 평면상의 3-vector P3×1′P'_{3 \times 1}P3×1′​로 변환합니다. .

P3×1′=M3×4P=K3×3[R  T]3×4P4×1P'_{3\times1} = M_{3\times4}P=K_{3\times3}\left[R\; T\right]_{3\times 4} P_{4\times 1}P3×1′​=M3×4​P=K3×3​[RT]3×4​P4×1​

여기에서 KKK는 intrinsics matrix, RRR은 회전 행렬(rotation matrix), TTT는 이동 행렬(translation matrix)를 의미합니다.

KKK를 먼저 살펴보면, KKK는 KKK의 초기값을 의미하는 매트릭스 K0K_0K0​와 KKK의 잔차값(residual)을 의미하는 매트릭스 ΔK\Delta KΔK(=zKz_KzK​)로 구성됩니다. 이렇게 나누어 구성하는 이유는 국소 최저값(local minima)이 많이 존재하는 intrinsic matrix의 비볼록(non-convex) 특성 때문에, KKK가 올바른 값에 수렴할 수 있도록 초기값을 부여하기 위함입니다.

K=[fx+Δfx0cx+Δcx0fy+Δfycy+Δcy001]=K0+ΔK∈R3×3K=\begin{bmatrix} f_x+\Delta f_x & 0 & c_x + \Delta c_x \\ 0 & f_y + \Delta f_y & c_y + \Delta c_y \\ 0 & 0 & 1 \end{bmatrix} = K_0 + \Delta K \in \mathbb{R}^{3\times 3}K=​fx​+Δfx​00​0fy​+Δfy​0​cx​+Δcx​cy​+Δcy​1​​=K0​+ΔK∈R3×3

KKK와 유사하게, 회전 행렬 RRR 이동 행렬 TTT 또한 extrinsic 의 초기값과 각각의 잔차(residual)를 의미하는 매트릭스로 나누어 표현할 수 있습니다. 그러나, 회전 행렬의 경우 구성요소 각각에 대해 잔차(residual)를 계산하는 것은 회전 행렬의 정규직교(orthonormal)한 특성을 파괴합니다. 이를 해결하기 위하여 해당 논문에서는 회전 행렬을 표현하기위해 6-vector 표현방식을 활용합니다. 회전 행렬에 존재하는 2개 열의 값만을 학습하고 마지막 열은 정규직교(orthonormal) 특성을 이용하여 계산하는 방식입니다:

t=t0+ΔtR=f(a0+Δa)f([∣∣a1a2∣∣])=[∣∣∣b1b2b3∣∣∣]3×3\mathbf{t} = \mathbf{t_0} + \Delta \mathbf{t}\\R=f(\mathbf{a_0}+\Delta \mathbf{a})\\f\begin{pmatrix}\begin{bmatrix} | & | \\ a_1& a_2\\ | & | \end{bmatrix}\end{pmatrix} = \begin{bmatrix}|&|&|\\\mathbf{b_1} & \mathbf{b_2} & \mathbf{b_3}\\| & | & |\end{bmatrix}_{3 \times 3}t=t0​+ΔtR=f(a0​+Δa)f​​∣a1​∣​∣a2​∣​​​​=​∣b1​∣​∣b2​∣​∣b3​∣​​3×3​

여기에서 fff가 하는 역할은 Gram-Schmidt Process와 매우 유사합니다. 이해를 돕기 위하여 fff가 하는 역할을 그림으로 표현해보았으니 아래의 그림을 참고해주세요. 여기에서 N(⋅)N(\cdot)N(⋅)은 L2L2L2 normalization 을 의미합니다.

그림에서 볼 수 있듯이, 비정규화(unnormalized)상태의 두 벡터 a1\mathbf{a_1}a1​,a2\mathbf{a_2}a2​로부터 정규직교(orthonormal)한 벡터 b1,b2,b3\mathbf{b_1}, \mathbf{b_2}, \mathbf{b_3}b1​,b2​,b3​를 얻을 수 있다는 것을 확인할 수 있습니다.

Fourth Order Radial Distortion

상용 렌즈는 우리가 이상적으로 생각하는 렌즈(lens focal length가 하나의 값으로 고정됨)와 다른 특성을 가지기 때문에 다양한 종류의 수차(aberration)를 만들어냅니다. 그 중 가장 흔하게 관찰되는 것은 방사 왜곡(radial distortion)으로 알려져 있습니다. 아래 그림은 흔히 관찰되는 방사 왜곡의 종류를 직관적으로 보여주고 있습니다.

SCNeRF는 이러한 방사 왜곡(radial distortion)에 대처할 수 있도록 흔히 사용되는 4차 방사왜곡 모델을 카메라 모델에 추가하였습니다.

픽셀 좌표 (px,py)(p_x, p_y)(px​,py​)를 왜곡되기 이전의 정규화(normalized)된 상태의 픽셀 좌표(nx′,ny′)(n'_x, n'_y)(nx′​,ny′​) 로 변환하는 과정은 4차 방사왜곡 모델(4th order radial distortion model)에 의해 아래와 같이 표현할 수 있습니다.

(nx,ny)=(px−cxfx,py−cyfy)r=nx2+ny2[nx′,ny′,1]T=K−1[px(1+(k1+zk1)r2+(k2+zk2)r4),py(1+(k1+zk1)r2+(k2+zk2)r4),1](n_x, n_y) = (\frac{p_x-c_x}{f_x},\frac{p_y-c_y}{f_y})\\r=\sqrt{n^2_x+n^2_y}\\\left[n'_x, n'_y, 1 \right]^T = K^{-1} \left[p_x(1+(k_1+z_{k_1}) r^2 + (k_2+z_{k_2}) r^4), p_y(1+(k_1+z_{k_1}) r^2 + (k_2+z_{k_2}) r^4),1 \right](nx​,ny​)=(fx​px​−cx​​,fy​py​−cy​​)r=nx2​+ny2​​[nx′​,ny′​,1]T=K−1[px​(1+(k1​+zk1​​)r2+(k2​+zk2​​)r4),py​(1+(k1​+zk1​​)r2+(k2​+zk2​​)r4),1]

여기에서 (k1,k2)(k_1, k_2)(k1​,k2​)는 k0k_0k0​로 표기되는 방사 왜곡(radial distortion) 파라미터 초기값을 의미하며, (zk1,zk2)(z_{k_1}, z_{k_2})(zk1​​,zk2​​)는 zkz_kzk​로 표기되는 방사 왜곡 파라미터의 잔차값(residual)을 의미합니다.

Ray Direction & Origin

앞서 설명한 Pinhole Camera Model와 Fourth Order Radial Distortion의 내용을 이용하여 광선(ray)의 방향 rd\mathbf{r_d}rd​와 광선의 기원(origin) ro\mathbf{r_o}ro​을 세계 좌표(world coordinate)에서 아래 식과 같이 표현할 수 있습니다.

rd=N(R⋅[nx′,ny′,1]T)ro=t\mathbf{r_d} = N(R \cdot \left[n'_x, n'_y, 1 \right]^T)\\\mathbf{r_o}=\mathbf{t}rd​=N(R⋅[nx′​,ny′​,1]T)ro​=t

여기에서 N(⋅)N(\cdot)N(⋅)은 벡터 정규화(vector normalization) 과정을 의미합니다. 혹시 왜 이동 행렬 t가 세계 좌표(world coordinate)에서 광선 기원(ray origin) ro\mathbf{r_o}ro​(=카메라 원점 좌표) 와 동일한지 궁금하신 분들이 계신 경우를 대비하여 아래의 그림을 첨부하였으니 확인해주세요. 아래의 그림은 이동행렬 t\mathbf{t}t의 기하학적 의미를 보여주는 그림입니다.

광선(ray)을 구성하는 rd\mathbf{r_d}rd​와 ro\mathbf{r_o}ro​는 intrinsic, extrinsic, distortion 파라미터의 잔차(residual) (Δf\Delta fΔf, Δc\Delta cΔc, Δa\Delta aΔa, Δt\Delta tΔt, Δk\Delta kΔk)에 대해 표현 가능한 함수이므로, 우리는 광선(ray)에서 잔차(residual)로 gradient를 흘려주어 해당 파라미터들을 학습할 수 있습니다. 단, (K0,R0,t0,k0K_0,R_0, t_0, k_0K0​,R0​,t0​,k0​)들은 각 파라미터의 초기값으로 최적화하는 대상이 아니라는 점에 유의해주세요.

Generic Non-Linear Camera Distortion

실제 렌즈에 존재하는 복잡한 광학 수차(aberration)은 매개변수카메라모델(parametric camera model)로는 표현이 불가능합니다. 실제 렌즈에 존재하는 노이즈를 표현하기 위해 일반화비선형수차모델(generic non-linear aberration model)이 사용되었습니다. 구체적으로 말하자면, 카메라 좌표계 광선(ray)의 잔차(residual) zd=Δrd(p)\mathbf{z_d} = \Delta \mathbf{r}_d(\mathbf{p})zd​=Δrd​(p), zo=Δro(p)\mathbf{z}_o = \Delta \mathbf{r}_o(\mathbf{p})zo​=Δro​(p) 가 사용되었습니다. 여기에서 p\mathbf{p}p는 이미지 좌표를 의미합니다.

rd′=rd+zdro′=ro+zo\mathbf{r}'_d = \mathbf{r}_d + \mathbf{z}_d \\\mathbf{r}'_o=\mathbf{r}_o+\mathbf{z}_ord′​=rd​+zd​ro′​=ro​+zo​

광선의 연속적인(cotinuous) 왜곡 파라미터를 추정하기 위해 이중선형보간법(bilinear interpolation)이 사용되었습니다.

zd(p)=∑x=⌊px⌋⌊px⌋+1∑x=⌊py⌋⌊py⌋+1(1−∣x−px∣)(1−∣y−py∣)zd[x,y]\mathbf{z}_d(\mathbf{p}) = \sum_{x=\lfloor\mathbf{p}_x\rfloor}^{\lfloor\mathbf{p}_x\rfloor+1}\sum_{x=\lfloor\mathbf{p}_y\rfloor}^{\lfloor\mathbf{p}_y\rfloor+1} \left(1-|x-\mathbf{p}_x|\right)\left(1-|y-\mathbf{p}_y|\right)\mathbf{z}_d\left[x,y\right]zd​(p)=x=⌊px​⌋∑⌊px​⌋+1​x=⌊py​⌋∑⌊py​⌋+1​(1−∣x−px​∣)(1−∣y−py​∣)zd​[x,y]

여기에서 zd[x,y]\mathbf{z}_d[x, y]zd​[x,y]는 이산(discrete) 좌표계상의 제어점(control point) (x,y)(x, y)(x,y) 위치에서 정의되는 광선 방향의 잔차(residual)를 의미합니다. zd[x,y]\mathbf{z}_d[x, y]zd​[x,y]는 이산(discrete) 위치에서만 정의 및 학습됩니다. 쌍대성(duality)에 의해 zo(p)\mathbf{z}_o(\mathbf{p})zo​(p)의 식도 아래와 같이 성립하게 됩니다.

zo(p)=∑x=⌊px⌋⌊px⌋+1∑x=⌊py⌋⌊py⌋+1(1−∣x−px∣)(1−∣y−py∣)zo[x,y]\mathbf{z}_o(\mathbf{p}) = \sum_{x=\lfloor\mathbf{p}_x\rfloor}^{\lfloor\mathbf{p}_x\rfloor+1}\sum_{x=\lfloor\mathbf{p}_y\rfloor}^{\lfloor\mathbf{p}_y\rfloor+1} \left(1-|x-\mathbf{p}_x|\right)\left(1-|y-\mathbf{p}_y|\right)\mathbf{z}_o\left[x,y\right]zo​(p)=x=⌊px​⌋∑⌊px​⌋+1​x=⌊py​⌋∑⌊py​⌋+1​(1−∣x−px​∣)(1−∣y−py​∣)zo​[x,y]

이해를 돕기위해 일반화비선형수차모델(generic non-linear aberration model)의 개념을 표현한 그림을 아래에 첨부하였으니 참고해주세요.

더 자세한 내용이 궁금하신 분들은 Reference & Additional materials의 "Why having 10,000 parameters in your camera model is better than twelve" 논문을 참고해주세요.

Computational Graph of Ray Direction & origin

위에 언급된 Pinhole Camera Model, Fourth Order Radial Distortion, Generic Non-Linear Camera Distortion 으로부터, 최종 광선방향(ray direction)과 광선기원(ray origin)을 아래와 같은 그래프로 표현할 수 있습니다.

Loss

카메라 파라미터를 학습하기 위하여, 기하학적구조일관성손실값(geometric consistency loss)과 측광일관성손실값(photometric consistency loss)가 사용되었습니다.

Geometric Consistency Loss

기하학적구조일관성손실값(geometric consistency loss)은 위 그림에서 dπd_\pidπ​로 정의됩니다. 식의 자세한 이해를 위해 하나하나 살펴보도록 하겠습니다.

먼저, (pA↔pB)\left(\mathbf{p_A} \leftrightarrow \mathbf{p_B}\right)(pA​↔pB​)를 카메라A로 촬영된 이미지와 카메라B로 촬영된 이미지 각각에서 추출한 대응점이라고 가정합니다. 모든 카메라 파라미터가 캘리브레이션 되어있다고 가정할 때 pA\mathbf{p_A}pA​와 pB\mathbf{p_B}pB​에 의해 생성된 광선(ray)은 3차원 공간상의 한 점에서 만나야합니다. 하지만 카메라 파라미터에 에러가 존재하는 경우 두 광선은 만나지 않게되고, 이 경우의 오차값은 광선간의 최단거리를 측정하여 정의할 수 있습니다.

광선 rA\mathbf{r}_ArA​상의 점을 xA(tA)=ro,A+tArd,A\mathbf{x}_A(t_A) = \mathbf{r}_{o,A} + t_A\mathbf{r}_{d,A}xA​(tA​)=ro,A​+tA​rd,A​라 정의하고, 광선 rB\mathbf{r}_BrB​상의 점을 xB(tB)=ro,B+tArd,B\mathbf{x}_B(t_B) = \mathbf{r}_{o,B} + t_A\mathbf{r}_{d,B}xB​(tB​)=ro,B​+tA​rd,B​라 정의할 때, 광선 rA\mathbf{r}_ArA​와 점 xB\mathbf{x}_BxB​간의 거리는 위의 그림에서 ddd와 같습니다. dd2dtB∣t^B=0\frac{\mathbf{d}d^2}{\mathbf{d}t_B}|_{\hat{t}_B}=0dtB​dd2​∣t^B​​=0 을 풀면 우리는 xB\mathbf{x}_BxB​와 rA\mathbf{r}_ArA​사이의 거리를 최소로 만드는 t^B\hat{t}_Bt^B​값을 구할 수 있으며, 이는 아래 식과 같습니다.

t^B=(rA,o−rB,o)×rA,d⋅(rA,d×rB,d)(rA,d×rB,d)2\hat{t}_B = \frac{\left(\mathbf{r}_{A,o}-\mathbf{r}_{B,o}\right) \times \mathbf{r}_{A,d}\cdot \left( \mathbf{r}_{A,d} \times \mathbf{r}_{B,d}\right)}{\left(\mathbf{r}_{A,d}\times\mathbf{r}_{B,d}\right)^2}t^B​=(rA,d​×rB,d​)2(rA,o​−rB,o​)×rA,d​⋅(rA,d​×rB,d​)​

이 값으로부터 우리는 rA\mathbf{r}_ArA​와 xB\mathbf{x}_BxB​ 사이의 거리를 최소로 만드는 x^B\mathbf{\hat{x}}_Bx^B​의 값을 구할 수 있습니다.

x^B=xB(t^B)\mathbf{\hat{x}_B} = \mathbf{x_B}(\hat{t}_B)x^B​=xB​(t^B​)

쌍대성(duality)에 의해 x^A\mathbf{\hat{x}}_Ax^A​에 대하여 아래의 식도 만족합니다.

x^A=xA(t^A)\mathbf{\hat{x}_A} = \mathbf{x_A}(\hat{t}_A)x^A​=xA​(t^A​)

그림상의 dπd_{\pi}dπ​ 수식에서는 편의상 ^\hat{}^을 제외하고 x^A\mathbf{\hat{x}_A}x^A​와 x^B\mathbf{\hat{x}_B}x^B​을 xA\mathbf{x_A}xA​와 xB\mathbf{x_B}xB​로 표기하고있습니다.

각 점을 이미지상에 정사영하고 거리를 계산함으로써, 기하학적구조일관성손실값(geometric consistency loss) dπd_\pidπ​를 얻을 수 있습니다. 여기에서 π(⋅)\pi(\cdot)π(⋅)는 정사영을 수행하는 함수입니다.

카메라에서 멀리 떨어진 3차원 공간상의 점의 위치는 큰 편차를 가질 수 있고, 카메라와 가까운 3차원 공간상의 점의 위치는 상대적으로 작은 편차를 갖는다는 점에 주목해주세요. 3차원 공간상에서 정의되는 광선 간의 최단거리를 직접 손실함수에 사용하는 대신, 이미지로 정사영하여 계산한 거리값을 손실함수를 사용하는 것은 이러한 거리민감도를 제거하기 위함입니다.

Photometric Consistency Loss

측광일관성손실값(photometric consistency loss)은 다음과 같이 정의됩니다.

L=∑p∈I∣∣C(p)−C^(r(p))∣∣22\mathcal{L} = \sum_{\mathbf{p}\in\mathcal{I}}||C(\mathbf{p})-\hat{C}(\mathbf{r(p)})||^2_2L=p∈I∑​∣∣C(p)−C^(r(p))∣∣22​

여기에서 p\mathbf{p}p는 픽셀 좌표를, I\mathcal{I}I는 이미지상에 존재하는 모든 픽셀 좌표의 집합을, C^(r)\hat{C}(\mathbf{r})C^(r)는 광선 r\mathbf{r}r을 이용하여 volumetric rendering 과정을 통해 추정한 픽셀 p\mathbf{p}p의 색깔을, C(p)C(\mathbf{p})C(p)는 실측된 color값을 의미합니다.

C^(r)\hat{C}(\mathbf{r})C^(r)는 어떻게 추정하나요? Volumetric Rendering은 무엇인가요?

광선(ray)의 컬러값 C\mathbf{C}C는 광선상에 존재하는 점들의 컬러값을 불투명성(opaqueness) 수치로 가중(weighted)한 후 적분한 값으로 이해할 수 있습니다.

C^≈∑iN(∏j=1i−1α(r(tj),Δj))(1−α(ti,Δi))c(r(ti),v)\mathbf{\hat{C}} \approx \sum_i^N\left( \prod_{j=1}^{i-1}\alpha (\mathbf{r}(t_j), \Delta_j) \right)\left( 1-\alpha(t_i, \Delta_i) \right) \mathbf{c}\left( \mathbf{r}(t_i), \mathbf{v} \right)C^≈∑iN​(∏j=1i−1​α(r(tj​),Δj​))(1−α(ti​,Δi​))c(r(ti​),v)

여기서 α(⋅)\alpha(\cdot)α(⋅)는 투명도, c(⋅)\mathbf{c(\cdot)}c(⋅)는 컬러, Δi=ti+1−ti\Delta_i = t_{i+1}-t_{i}Δi​=ti+1​−ti​를 의미합니다. 이 수식에 대해 더 자세한 내용이 알고싶으신 분은 Reference & Additional materials 섹션의 "NeRF" 논문을 참고해주세요.

측광일관성손실값(photometric consistency loss)이 카메라 파라미터에 대해 미분 가능하다는 사실에 주목해주세요. 우리는 이로부터 카메라 파라미터에 대한 gradient값을 정의할 수 있고, 카메라 캘리브레이션을 수행할 수 있게됩니다.

Curriculum Learning

기하학적구조(geometry)를 모르거나 희소(coarse)하게만 아는 상황에서 self-calibration을 통해 정확한 카메라 파라를 학습하는 것은 불가능합니다. 이 문제를 해결하기 위하여 기하학적구조(geometry)와 선형 카메라 모델 파라미터를 먼저 학습하고, 복잡한 카메라 모델 파라미터를 나중에 학습하는 커리큘럼 학습기법이 차용되었습니다

먼저, NeRF 네트워크는 카메라 초점거리(focal length)와 주점(principal point)의 초기값을 이미지의 가로/세로길이의 절반으로 설정합니다. 카메라 파라미터가 올바를 극소점에 도달하게 하기 위하여 대략적인 기하학적구조(geometry)를 먼저 학습하는 것은 필수적인 과정입니다.

다음으로, 선형 카메라 파라미터, 방사 왜곡 파라미터, 비선형 광선 방향 노이즈 파라미터, 비선형 광선 기원 노이즈 파라미터가 순차적으로 학습에 추가됩니다.

아래 그림은 최종 학습 알고리즘이 어떻게 돌아가는지를 보여줍니다. 특히 get_paramsget\_paramsget_params함수는 학습에 사용될 카메라 파라미터를 순차적으로 추가해가며 리턴하는 함수이며, 추가되는 카메라 파라미터는 점진적으로 복잡도가 높아집니다.

기하학적구조(geometry)가 어느정도 학습되고 난 후, 기하학적구조일관성손실값(geometric consistency loss)을 사용하기 위하여 충분히 많은 대응점을 갖는 이미지를 랜덤하게 선택하고 이로부터 손실값을 계산하여 사용합니다.

4. Experiment & Result

해당 부문에서는 논문에 언급된 모든 실험 결과를 다루는 대신, 일부 대표적인 실험 결과를 다루도록 하겠습니다.

Experimental Setup

저자가 실험을 수행하기 위하여 사용한 데이터셋과 실험을 수행한 내용은 아래와 같습니다.

  • Dataset

    • LLFF

      • 8 장면(scenes)

    • Tanks and Temples

      • 4 장면(scenes)

    • 저자가 직접 촬영 및 수집한 데이터

      • 6 장면(scenes)

      • fish-eye camera

  • Experiments

    • Improve over NeRF

    • Improve over NeRF++

    • Fish-eye Lens Reconstruction

    • Ablation Study

여기서는 모든 실험 결과를 다루는 대신 빨강색으로 강조한 데이터와 실험에 대한 결과만 다룰 것입니다.

Improvement over NeRF

표1은 학습 데이터셋에대해 렌더링된 이미지의 정량평가 결과를 보여줍니다. SCNeRF가 캘리브레이션 된 카메라 모델을 알지 못함에도, 안정적으로 렌더링을 수행하는 것을 알 수 있습니다.

COLMAP을 이용하여 캘리브레이션 된 카메라 모델 결과값을 알고있는 경우에도 SCNeRF는 NeRF보다 더 나은 렌더링 성능을 보여줍니다. 표2는 이러한 경우의 NeRF와 SCNeRF의 결과를 보여줍니다.

위 결과로부터 우리는 SCNeRF가 지속적으로 NeRF보다 안정적인 렌더링 성능을 보이는 것을 확인할 수 있습니다. 아래의 그림은 각 경우의 렌더링 결과를 정성적으로 보이기 위하여 시각화한 것입니다.

여기서 (a)는 COLMAP 결과를 사용하지 않은 NeRF결과, (b)는 COLMAP결과를 사용한 NeRF 결과, (c)는 COLMAP 결과를 사용하지 않은 SCNeRF결과, (d)는 COLMAP결과를 사용한 SCNeRF 결과를 의미합니다.

Ablation Study

제안된 방법의 효과를 확인하기위하여 Ablation Study가 수행되었습니다. 각 단계는 20만 iteration동안 학습이 진행되었습니다. intrinsic/extrinsic 파라미터(IE), 비선형왜곡(OD), 정사영광선거리를 이용한 손실값 정의(PRD)가 점진적으로 추가되었고, 이 실험으로부터 SCNeRF를 점차 확장해나감으로써 더 좋은 렌더링 결과를 얻을 수 있다는 것을 알 수 있습니다. 그러나 해당 표에는 나타나있지 않지만, 일부 장면(scene)에 대해서는 PRD를 적용하는 것이 오히려 PRD값을 증가시키는 결과를 보였다고 합니다.

아래의 그림은 각 경우의 렌더링 결과를 정성적으로 보이기 위하여 시각화한 것입니다.

5. Conclusion

Summary

SCNeRF는 기하학적구조(geometry)와 카메라 파라미터를 동시에 학습하는 Self-Calibration방법을 제안합니다. 카메라 모델은 실제 카메라 렌즈에 존재하는 노이즈를 모델링하기 위하여 핀홀 모델, 방사 왜곡 모델, 그리고 비선형 왜곡 모델을 포함하여 구성되었습니다. SCNeRF는 정사영한 광선 거리를 사용하여 손실함수를 새롭게 정의하고, 이를 통해 캘리브레이션 성능을 개선하였습니다. SCNeRF는 카메라 캘리브레이션 결과가 없을 때에도 안정적인 결과를 보이고 있으며, 카메라 캘리브레이션 결과가 주어졌을 때에도 기존 NeRF대비 더 안정적인 렌더링 결과를 보여줍니다.

Personal Opinion

  • 해당 논문은 카메라 파라미터와 Neural Radiance Field를 함께 학습한다는 점에서 의의가 있습니다.

  • 왜 validation set이나 test set을 이용한 성능 평가가 아닌 training set을 이용하여 성능평가를 수행하였는지 의문입니다.

  • 몇몇 수식에서 에러가 발견되어, 개인적으로 생각하기에 맞다고 생각되는 방향으로 수정하여 글을 작성하였습니다. 혹시 수식에서 에러가 발견된다면 자유롭게 의견 남겨주세요

Take home message

SCNeRF는 기하학적구조(geometry)와 카메라 파라미터를 처음부터 함께 학습합니다.

SCNeRF의 카메라 모델에는 핀홀카메라모델, 방사왜곡모델, 비선형왜곡모델이 포함됩니다.

SCNeRF는 성능을 높이기 위해 정사영광선거리(Projected Ray Distance)를 사용합니다.

Author information

김민정(Min-Jung Kim)

  • KAIST AI

  • Contact Information

    • email: emjay73@naver.com

Reference & Additional materials

  1. Citation of this paper

    1. Jeong, Yoonwoo, et al. "Self-calibrating neural radiance fields." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021.

  2. Citation of related work

    1. Mildenhall, Ben, et al. "Nerf: Representing scenes as neural radiance fields for view synthesis." European conference on computer vision. Springer, Cham, 2020.

    2. Schops, Thomas, et al. "Why having 10,000 parameters in your camera model is better than twelve." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.

    3. Zhou, Yi, et al. "On the continuity of rotation representations in neural networks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.

  3. Other useful materials

    1. Lens Aberrations : chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/viewer.html?pdfurl=https%3A%2F%2Fwww.nao.org%2Fwp-content%2Fuploads%2F2020%2F04%2FLens-Aberrations.pdf&chunk=true

    2. camera models : chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/viewer.html?pdfurl=https%3A%2F%2Fcvgl.stanford.edu%2Fteaching%2Fcs231a_winter1415%2Flecture%2Flecture2_camera_models_note.pdf&clen=4519068&chunk=true

좋지 않은 성능에 대한 내용은 글에서만 언급되고, 표에 수치가 기록하지 않은 점이 아쉬웠습니다. (예를들면 )

Official Project Page :

Official GitHub repository :

https://arxiv.org/abs/2108.13826
https://postech-cvlab.github.io/SCNeRF/
https://github.com/POSTECH-CVLab/SCNeRF
#Ablation Study
English version