Understanding NeRF: Neural Radiance Fields
--
Understanding the concepts behind NeRF and Neural Rendering
Introduction
In this article, we will start with an explanation of what is Computer Graphics (a very short introduction, with a brief on volume rendering and view synthesis). We will then have an overview of what is Neural Radiance Fields and how it is used in view synthesis.
I will also give the model used by NeRF in a gist code that can be used to get the code running. But remember that it is not the entire code so if you copy it and try to run it in your code the probability of your code working is negligible. In case you are looking for the source code for NeRF then it can be checked here in this GitHub link.
Computer Graphics Introduction
This section is solely for people who are new to computer graphics and may not be familiar with the terminology and definitions of various techniques used in this area. So if you are familiar with this topic feel free to skip through this section.
Before we can jump on to Neural Radiance Fields it is good to be familiar with different areas of computer graphics. Computer Graphics (as per Wikipedia) is a branch of computer science that deals with generating images with the aid of computers. Now the question that might come is why focusing on only images and not videos? Well, the answer is simple a video is nothing but a time-series of images (FPS: Frame Per Second) in a sequence. So when you are running a game (let’s say Arkham Asylum) then, at that time your GPU computes scenes as an image. What you see next is your character (let’s say Batman) interacting with an environment (Jumping from Buildings, driving Batmobile, punching joker ) in terms of frames (a collection of images) that is being rendered per second for each of those scenes. So for simplicity, we can say that videos are nothing but several images in time duration (imagine it like a flipbook or flick book).
Now computer graphics is a very vast area in itself comprising of multiple topics like UI design, rendering, ray tracing, vector graphics, geometry processing, 3D modeling, image processing, shading, Material and texture, and so on. This is not a tutorial for computer…