오늘은 어김없이 notion에서 긁어 온 IBRNet 이라는 페이퍼 리뷰를 올려보려고 합니다.
Introduction
이름에서 볼 수 있듯 IBR(Image Based Rendering) + NeRF 에 해당하는 논문. multiple source view를 input 으로8 받아 continuous scene radiance field 를 on-the-fly 로 generation 해냈다.
>> ray transformer architecture를 이용해 density, occlusion, visibility reasoning + color blending 에 대한 general view interpolation 을 학습한다.
<Rough Procedure>
- IBRNet(Light-weighted MLP Network) 은 final color computation 을 위해 given ray 에 대해 여러 source view 에서 얻어낸 정보들을 aggregation 한다
- ray direction 으로 sampling한 3D Location 에 대해, network 는 우선 nearby source view 들로부터 latent 2d feature (spatial context)들을 fetch 함. i.e. pixelNeRF 가 single view input 을 기본 전제로 하고 해당 image로부터 spatial feature 를 추출해 넣었다면 여기서는 multiple view feature aggregation.
- 이 multiple source view 들로부터 얻어낸 feature 들을 aggregation 해, 이 feature 들이 surface 상에 존재하는지 여부 - 즉, density feature (scalar density 가 아닌 density feature 임에 유의)를 만들어낸다
- ray transformer 는 3의 결과물 (density feature)들을 받아 각 ray 방향 sample 들의 density feature 들을 고려해 , scalar density value를 만들어낸다 - 결과적으로 기존 방식보다 조금 더 넓은 범위의 larger spoatial scale 를 고려해 visiblity 를 판단하게 된다.
- ray transformer 와는 별개로 color blending 모듈도 2d feature 랑 view direction vector 들을 판단으로 source view 들로부터 view-dependent color 를 만들어낸다.
++ 특정 경우에 대해 (아마도 scene-wise opotimization 이 더해진 경우) - NERF 랑 compatible 한 수준까지 finetuning 가능. (for particular scene)
Contribution
- a new learning-based multi-view image-based rendering approach that outperforms existing one-shot view synthesis methods on novel scenes
- a new model architecture called IBRNet that enables the continuous prediction of colors and densities in space from multiple views.
- a per-scene fine-tuning procedure that achieves comparable performance to SOTA novel view synthesis methods designed only for single-scene inference.
Major difference with pixelNeRF?
Specifically, for each sample, we aggregate its correspondiung information (image colors, features, and viewing directions) from the neighboring source views to produce its color c and density feature f (note that these features are not yet scalar density values).
View Selection
전체를 고려할 수도 있지만, limited GPU memory 환경에서 small number of source view 만을 working set으로 사용했다고 언급.
we identify spatially nearby candidate views, then select the subset of N views whose viewing directdions are most similar to the target view.
** 각 sourceview에 대한 projection matrix 는 가지고 있으니 이걸 가지고 selection 하는 건 어려운 일은 아닐 듯. dense feature extreaction 은 U-Net 사용.
"Our proposed IBRNet is permutation-invariant and accepts a variable number of source views"
View selection 에 대한 정확한 methodology 는 Implementation detail part에 나와있다.
Volume Density Prediction
두 가지 step 으로 이뤄짐
- aggregate the multi-view features at (x,d) to obtain a density feature
- ray-transformer takes in density features from all samples on a ray and incorporates long-range contextual information to predict the density for each sample including (x,d)
Multi-view Feature Aggregation
local appearance 내지 spatial feature 와 volume density 의 상관관계?
We observe that 3D points on surfaces are more likely to have consistent local appearances in multiple views than 3D points in free space
surface의 경우 더 높은 local appearance consistency 를 보이는 경향. 즉, scalar density prediction 을 위해 consistency check 를 해야한다. 여기에 Point-Net like architecutre 를 사용한다.
- per-element mean /variance 계싼
- 각 feature/mean/variance 를 compact 해 small shared MLP 로 넣는다 ( integrate local and global information) : output 은 결과적으로 multi-view aware feature and a weight vector.
- 얻어낸 이 multi-view aware feature 에 대한 pooling 수행: pooling by computing their weighted average and variance using weights, which are mapped to a density feature using an MLP.
- 결과적으로 기존 PointNet 에서 사용하는 direct average of max-pooling 보다 occlusion handling 이 더 잘 됐다고 하는데, 왜?
Ray-Transformer
single density feature 를 바로 scalar density 로 바꾸는 방식은 complex scene geometry 를 가지는 경우 한계점을 가진다고 서술.
looking at features for a single point in isolation is inadequate for accurately predicting its density, and more contextual informaiton is needed-similar to how plan-sweep stereo methods consider matching scores along a whole ray before determining the depth of a particular pixel.
즉, ray transformer 가 하는 역할은 density 최종 prediction 전에 ray 위의 sample 들 간에 서로를 참고할 수 있도록 해준다. (실제로 positional encoding + self-attention 으로 이루어져 있다).
M 개의 sample을 input 으로 받아, near-tofar sample 들을 일종의 sequence 로 취급한다. 그리고 이 sequence sample 들에 대해 positional encoding+ multi-head sef-attention 을 적용한다. 이제 이 attended feature 들로부터 density value 를 추정한다.
Benefits?
a variable number of inputs. a small increase in parameters / computational overhead + increased performance
오늘도 필요한 부분만 정리한 용두사미 리뷰 읽어주셔서 감사합니다..
뒷부분은 시간되는대로 추가해서 올리겠습니다.