Compare commits

...
Sign in to create a new pull request.

9 commits

Author SHA1 Message Date
945f54f767 added compiled PDF 2023-07-06 16:16:42 +02:00
34ea28aa30 black and white edition 2023-07-06 16:13:26 +02:00
26b7e20052 added missing fontenc package 2023-07-06 16:07:09 +02:00
22207962d8 began black and white edition 2023-07-06 15:59:51 +02:00
e5b12d9bad removed comment 2023-07-06 15:45:58 +02:00
uxwmp
1197986249 Update on Overleaf. 2023-07-06 10:21:58 +00:00
81e08b1c3b compiled notes 2023-07-05 18:04:51 +02:00
uxwmp
a58f8d8d65 Update on Overleaf. 2023-07-05 16:03:04 +00:00
uxwmp
1eb92d1164 Update on Overleaf. 2023-07-02 18:01:06 +00:00
18 changed files with 192 additions and 133 deletions

View file

@ -21,7 +21,7 @@
% occlusion tri % occlusion tri
\draw[ \draw[
fill, fill,
red darkgray
] (3,2) -- (4.5,0.2) -- (6,3); ] (3,2) -- (4.5,0.2) -- (6,3);
% samples % samples
@ -33,5 +33,5 @@
5/0.5, 5/0.5,
5/2.5 5/2.5
} }
\node[fill = yellow] at (\x,\y) {}; \node[fill = black] at (\x,\y) {};
\end{tikzpicture} \end{tikzpicture}

View file

@ -1,24 +1,24 @@
\begin{tikzpicture}[scale = 0.9, every node/.style={scale=0.9}] \begin{tikzpicture}[scale = 0.9, every node/.style={scale=0.9}]
\def\raynum{60} \def\raynum{18}
\foreach \x in {0,...,\raynum} { \foreach \x in {0,...,\raynum} {
\ifthenelse{\x < 10 \OR \x>50} \ifthenelse{\x < 3 \OR \x>15}
{ {
\draw[color = darkgray] (\x /\raynum * 6 ,0) -- (3,4); \draw[color = black] (\x /\raynum * 6 ,0) -- (3,4);
}{ }{
\draw[color = red] (\x /\raynum * 6 ,0) -- (3,4); \draw[color = lightgray] (\x /\raynum * 6 ,0) -- (3,4);
} }
} }
\fill[ \fill[
white white
] (1.49,1) -- (4.51,1) -- (5.01,0) -- (0.99,0) -- cycle; ] (1.48,1) -- (4.52,1) -- (5.02,0) -- (0.98,0) -- cycle;
\draw [color=darkgray] (0,0) -- node[below]{wall} (6,0) ; % wall \draw [color=black] (0,0) -- node[below]{wall} (6,0) ; % wall
\draw [color=red](1.5,1) -- node[below]{blocker} (4.5,1); %blocker \draw [color=black](1.5,1) -- node[below]{blocker} (4.5,1); %blocker
%cam %cam
\node[ \node[
@ -37,11 +37,11 @@
\fill[ \fill[
red gray
] (5,3) -- (6.7,3) -- (6.7,3.3) -- (5,3.3) -- cycle; ] (5,3) -- (6.7,3) -- (6.7,3.3) -- (5,3.3) -- cycle;
\draw[darkgray] (8,2) coordinate (darkgray_ray_isec) -- (5,5) coordinate (orig); \draw[black] (8,2) coordinate (darkgray_ray_isec) -- (5,5) coordinate (orig);
\draw[red] (6.4,3.3) coordinate (red_ray_isec) -- (5,5); \draw[gray] (6.4,3.3) coordinate (red_ray_isec) -- (5,5);
%line %line
\draw (mag.north east) -- (7,2); \draw (mag.north east) -- (7,2);

View file

@ -22,7 +22,7 @@
% occlusion tri % occlusion tri
\draw[ \draw[
fill, fill,
red darkgray
] (3,2) -- (4.5,0.2) -- (6,3); ] (3,2) -- (4.5,0.2) -- (6,3);
% samples % samples
@ -33,10 +33,10 @@
3.5/2.5, 3.5/2.5,
5.5/0.5 5.5/0.5
} }
\node[fill = yellow] at (\x,\y) {}; \node[fill = black] at (\x,\y) {};
\node[ \node[
fill = yellow, fill = black,
fill opacity = 0.4, fill opacity = 0.5,
] at (4.5,1.5) {}; ] at (4.5,1.5) {};
\end{tikzpicture} \end{tikzpicture}

View file

@ -5,8 +5,8 @@
\draw[->] (-0.2,-0.5) -- (2.2,-0.5) node[right] {$\omega$}; \draw[->] (-0.2,-0.5) -- (2.2,-0.5) node[right] {$\omega$};
\draw[->] (0,-0.7) -- (0,2.2) node[above] {$V(x,\omega)$}; \draw[->] (0,-0.7) -- (0,2.2) node[above] {$V(x,\omega)$};
\draw (0,0) -- (1,0) plot coordinates {(0,0) (1,0)}[color=red]; \draw (0,0) -- (1,0) plot coordinates {(0,0) (1,0)}[color=black];
\draw (1,1) -- (2,1) plot coordinates {(1,1) (2,1)}[color=red]; \draw (1,1) -- (2,1) plot coordinates {(1,1) (2,1)}[color=black];
\draw (0,0) node[left] {$0$}; \draw (0,0) node[left] {$0$};
\draw (0,1) node[left] {$1$}; \draw (0,1) node[left] {$1$};
\draw (1,-0.7) node[below] {$\omega_0$}; \draw (1,-0.7) node[below] {$\omega_0$};
@ -21,11 +21,11 @@
\draw[->] (-0.2,-0.5) -- (2.2,-0.5) node[right] {$\omega$}; \draw[->] (-0.2,-0.5) -- (2.2,-0.5) node[right] {$\omega$};
\draw[->] (0,-0.7) -- (0,2.2) node[above] {$\frac{\partial}{\partial\omega}V(x,\omega)$}; \draw[->] (0,-0.7) -- (0,2.2) node[above] {$\frac{\partial}{\partial\omega}V(x,\omega)$};
\draw (0,0) -- (2,0) plot coordinates {(0,0) (2,0)}[color=red]; \draw (0,0) -- (2,0) plot coordinates {(0,0) (2,0)}[color=black];
\draw (0,0) node[left] {$0$}; \draw (0,0) node[left] {$0$};
\draw (0,1) node[left] {$1$}; \draw (0,1) node[left] {$1$};
\draw (0,2) node[left] {$\infty$}; \draw (0,2) node[left] {$\infty$};
\draw (1,2) node[color=red] {$\bullet$}; \draw (1,2) node[color=black] {$\bullet$};
\draw (1,-0.7) node[below] {$\omega_0$}; \draw (1,-0.7) node[below] {$\omega_0$};
\end{tikzpicture} \end{tikzpicture}
} }

View file

@ -7,7 +7,7 @@
\draw[ \draw[
fill, fill,
red gray
] (-2, -3) -- (-2,-4) -- (2,-6) -- (4.3,-6) -- (4.3,-4) -- cycle; ] (-2, -3) -- (-2,-4) -- (2,-6) -- (4.3,-6) -- (4.3,-4) -- cycle;
\draw[ \draw[
@ -17,12 +17,12 @@
\draw[ \draw[
fill, fill,
blue darkgray
] (1.7,-2) circle (15pt); ] (1.7,-2) circle (15pt);
\draw[ \draw[
fill, fill,
blue darkgray
] (0.4,-4.2) circle (15pt); ] (0.4,-4.2) circle (15pt);
\node (fu) at (1.4,-1) {\LARGE $f_u$ $(+)$}; \node (fu) at (1.4,-1) {\LARGE $f_u$ $(+)$};

View file

@ -1,4 +1,3 @@
%\newcommand{\CLASSINPUTtoptextmargin}{1.5cm}
\newcommand{\CLASSINPUTbottomtextmargin}{2.5cm} \newcommand{\CLASSINPUTbottomtextmargin}{2.5cm}
\documentclass[conference, a4paper, hidelinks]{IEEEtran} \documentclass[conference, a4paper, hidelinks]{IEEEtran}
@ -37,6 +36,7 @@
\usepackage{amsfonts} \usepackage{amsfonts}
\usepackage{caption} \usepackage{caption}
\DeclareCaptionType{eqcap}[Equation][List of equations] \DeclareCaptionType{eqcap}[Equation][List of equations]
\usepackage[T1]{fontenc}
\usepackage{tikz} \usepackage{tikz}
\usetikzlibrary{calc, \usetikzlibrary{calc,
@ -143,13 +143,13 @@ Given this function and a set of target images the inverse rendering problem can
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\subfloat[initial guess]{ \subfloat[initial guess]{
\includegraphics[width=0.3\linewidth]{../presentation/img/results/guess.png} \includegraphics[width=0.3\linewidth]{../presentation/img/results/guess-bw.png}
} }
\subfloat[optimized result]{ \subfloat[optimized result]{
\includegraphics[width=0.3\linewidth]{../presentation/img/results/result.png}\label{fig:result_image} \includegraphics[width=0.3\linewidth]{../presentation/img/results/result-bw.png}\label{fig:result_image}
} }
\subfloat[target]{ \subfloat[target]{
\includegraphics[width=0.3\linewidth]{../presentation/img/results/photo.png} \includegraphics[width=0.3\linewidth]{../presentation/img/results/photo-bw.png}
} }
\caption{A generic example for how differentiable ray tracing can be used to approximate a solution for the inverse rendering problem.}\label{fig:inverse_rendering_example} \caption{A generic example for how differentiable ray tracing can be used to approximate a solution for the inverse rendering problem.}\label{fig:inverse_rendering_example}
\end{figure} \end{figure}

BIN
handout/handout_bw.pdf Normal file

Binary file not shown.

View file

@ -41,7 +41,7 @@
\begin{tikzpicture} \begin{tikzpicture}
% scene seite % scene seite
\node[above] at (2,2) {side view}; \node[above] at (2,2) {side view};
\node[below] at (2,-0.5) {(no indirect lighting)}; \node[below] at (2,-0.5) {\footnotesize (no indirect lighting)};
\draw[ \draw[
kit-green100 kit-green100

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View file

@ -68,10 +68,10 @@
\input{diagrams/raytracing_anim} \input{diagrams/raytracing_anim}
\end{frame} \end{frame}
\begin{frame}{Image synthesis~-~Optical Phenomena} %\begin{frame}{Image synthesis~-~Optical Phenomena}
\centering % \centering
\includegraphics[width=0.38\linewidth]{proseminar_cycles_annotated.png} % \includegraphics[width=0.38\linewidth]{proseminar_cycles_annotated.png}
\end{frame} %\end{frame}
\subsection{Differentiable Rendering} \subsection{Differentiable Rendering}
\begin{frame}{Differentiable Rendering} \begin{frame}{Differentiable Rendering}

View file

@ -65,6 +65,7 @@ with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\
\end{itemize} \end{itemize}
\pause{} \pause{}
\vspace{15mm} \vspace{15mm}
\footnotesize
Image source: Auth0, \href{https://auth0.com/blog/captcha-can-ruin-your-ux-here-s-how-to-use-it-right/}{CAPTCHA Can Ruin Your UX. Heres How to Use it Right} Image source: Auth0, \href{https://auth0.com/blog/captcha-can-ruin-your-ux-here-s-how-to-use-it-right/}{CAPTCHA Can Ruin Your UX. Heres How to Use it Right}
\end{minipage} \end{minipage}
\begin{minipage}{0.5\linewidth} \begin{minipage}{0.5\linewidth}

View file

@ -1,5 +1,5 @@
\section{Problems} \section{Problems}
% \begin{frame} % \begin{frame}
% \centering % \centering
% \Huge % \Huge
% Problems % Problems

View file

@ -9,9 +9,9 @@
\setbeamercovered{transparent} \setbeamercovered{transparent}
\begin{block}{Assumptions} \begin{block}{Assumptions}
\begin{itemize} \begin{itemize}
\item Continuous parameter set
\item Triangle meshes \item Triangle meshes
\item No interpenetrating triangles \item No interpenetrating triangles
\item Continuous parameter set
\item No point lights, no perfectly specular surfaces \item No point lights, no perfectly specular surfaces
\item Ignore time domain \item Ignore time domain
\end{itemize} \end{itemize}
@ -66,8 +66,8 @@
\[ \[
\sum_i\iint \sum_i\iint
\underbrace{\theta(}_{\text{Step function}} \underbrace{\theta(}_{\text{Step function}}
\underbrace{\alpha_i(x,y)}_{\text{Edge equation formed by the triangle edge}}) \underbrace{\alpha_i(x,y)}_{\text{Edge equation}})
\underbrace{f_i(x,y)}_{\text{Half space (may contain Heaviside step functions itself)}} \underbrace{f_i(x,y)}_{\text{Half space}}
\] \]
} }
@ -87,47 +87,66 @@
\end{frame} \end{frame}
\begin{frame}{Inverse Rendering~-~Results in this Paper} \begin{frame}{Inverse Rendering~-~Example from this Paper}
\begin{block}{Inverse rendering here} \centering
\begin{itemize} \begin{minipage}{0.19\linewidth}
\item Parameters: Camera pose, material parameters, light source intensity \begin{figure}
\item Scene: Strong indirect illumination and non lambertian materials \centering
\item Initial guess: Almost all objects white, arbitrary camera pose \includegraphics[width=\linewidth]{img/teapot_video/teapot_init.png}
\item 177 parameters \vspace{0mm}
\item Loss function: Absolute difference \caption{initial guess}\label{fig:teapot_init}
\item ADAM optimizer \end{figure}
\item Start resolution of $64\times 64$, linearly increase to $512\times 512$ in 8 steps\\ \end{minipage}
$\implies$ Avoid local minima of the loss function \begin{minipage}{0.19\linewidth}
\end{itemize} \begin{figure}
\end{block} \centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_init_diff.png}
\caption{difference\\
initial $\leftrightarrow$ target}\label{fig:teapot_init_diff}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_target.png}
\vspace{0mm}
\caption{target image}\label{fig:teapot_target}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_final_diff.png}
\caption{difference\\
final $\leftrightarrow$ target}\label{fig:teapot_final_diff}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_final.png}
\vspace{0mm}
\caption{final image}\label{fig:teapot_final}
\end{figure}
\end{minipage}
\end{frame} \end{frame}
\begin{frame}{Inverse Rendering~-~Results in this Paper} \begin{frame}{Inverse Rendering~-~Example from this Paper}
\begin{center}
\begin{minipage}{0.25\linewidth}
\begin{figure}
\centering \centering
\includegraphics[width=\linewidth]{img/results/guess.png} \includemedia[
\caption{Initial guess}\label{fig:results-guess} width=0.62\linewidth,height=0.35\linewidth,
\end{figure} activate=onclick,
\end{minipage} addresource=teapot.mp4,
\hspace{2mm} playbutton=fancy,
\begin{minipage}{0.25\linewidth} transparent,
\begin{figure} passcontext,
\centering flashvars={
\includegraphics[width=\linewidth]{img/results/photo.png} source=teapot.mp4
\caption{Target (photograph)}\label{fig:results-target} &autoPlay=true
\end{figure} }
\end{minipage} ]{}{VPlayer.swf}
\hspace{2mm} \\
\begin{minipage}{0.25\linewidth} All media in this section taken from~\cite{ACM:diffable_raytracing}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/results/result.png}
\caption{Optimized image}\label{fig:results-optimized}
\end{figure}
\end{minipage}
\end{center}
\end{frame} \end{frame}
\begin{frame} \begin{frame}
@ -231,66 +250,47 @@
\end{figure} \end{figure}
\end{frame} \end{frame}
\begin{frame}{Inverse Rendering~-~Example from this Paper} \begin{frame}{Inverse Rendering~-~Results in this Paper}
\centering \begin{block}{Inverse rendering here}
\begin{minipage}{0.19\linewidth} \begin{itemize}
\begin{figure} \item Parameters: Camera pose, material parameters, light source intensity
\centering \item Scene: Strong indirect illumination and non lambertian materials
\includegraphics[width=\linewidth]{img/teapot_video/teapot_init.png} \item Initial guess: Almost all objects white, arbitrary camera pose
\vspace{0mm} \item 177 parameters
\caption{initial guess}\label{fig:teapot_init} \item Loss function: Absolute difference
\end{figure} \item ADAM optimizer
\end{minipage} \item Start resolution of $64\times 64$, linearly increase to $512\times 512$ in 8 steps\\
\begin{minipage}{0.19\linewidth} $\implies$ Avoid local minima of the loss function
\begin{figure} \end{itemize}
\centering \end{block}
\includegraphics[width=\linewidth]{img/teapot_video/teapot_init_diff.png}
\caption{difference\\
initial $\leftrightarrow$ target}\label{fig:teapot_init_diff}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_target.png}
\vspace{0mm}
\caption{target image}\label{fig:teapot_target}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_final_diff.png}
\caption{difference\\
final $\leftrightarrow$ target}\label{fig:teapot_final_diff}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/teapot_video/teapot_final.png}
\vspace{0mm}
\caption{final image}\label{fig:teapot_final}
\end{figure}
\end{minipage}
\end{frame} \end{frame}
\begin{frame}{Inverse Rendering~-~Example from this Paper} \begin{frame}{Inverse Rendering~-~Results in this Paper}
\begin{center}
\begin{minipage}{0.25\linewidth}
\begin{figure}
\centering \centering
\includemedia[ \includegraphics[width=\linewidth]{img/results/guess.png}
width=0.62\linewidth,height=0.35\linewidth, \caption{Initial guess}\label{fig:results-guess}
activate=onclick, \end{figure}
addresource=teapot.mp4, \end{minipage}
playbutton=fancy, \hspace{2mm}
transparent, \begin{minipage}{0.25\linewidth}
passcontext, \begin{figure}
flashvars={ \centering
source=teapot.mp4 \includegraphics[width=\linewidth]{img/results/photo.png}
&autoPlay=true \caption{Target (photograph)}\label{fig:results-target}
} \end{figure}
]{}{VPlayer.swf} \end{minipage}
\\ \hspace{2mm}
All media in this section taken from~\cite{ACM:diffable_raytracing} \begin{minipage}{0.25\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{img/results/result.png}
\caption{Optimized image}\label{fig:results-optimized}
\end{figure}
\end{minipage}
\end{center}
\end{frame} \end{frame}
\subsection{Conclusion~-~What can this Method do?} \subsection{Conclusion~-~What can this Method do?}

58
presentation/notes.md Normal file
View file

@ -0,0 +1,58 @@
# Notes diffable Monte carlo RT
## Raytracing formula
- geometry term discussed later
- Emission + All light reflected towards point
- Yields infinite recursion -> not calculable
## Visualization
- Explain image
- No indirect lighting!
- Output image is what we would expect (explain shade)
## Differentiable rendering
- That function is dependent on renderer
- Renderer needs to be differentiable
## Importance
- Inversely render complex indoor scenes
- "Fool" neural network
- Real time realistic shading in AR
- Application in maritime research
## Adversarial image generation
- Example for classification on slide 2!
- Fool neural netweork into wrongly classifying input data
- Optimize Image into wrong class
## Why differentiable rendering is hard
- Example later
- geometry term explanation later
## Former methods visualization
- Plane lit by a point light source.
- gradient with respect to the plane moving right
- light source remains static => the gradient should only be $\ne 0$ at the boundaries
- OpenDR and Neural not able to correctly calculate the gradients
- they are based on color buffer differences
## Edge sampling
- Approximate point lights using small area lights
- Specular => angle of incidence = angle of light reflected
- only lambertian materials
## Edge Sampling - Math Background
- Heaviside step functions in $f_i(x,y)$
## Inverse Rendering - Results in this paper
- ADAM: talk by Mr. Wu

BIN
presentation/notes.pdf Normal file

Binary file not shown.

View file

@ -16,7 +16,7 @@
\titleimage{logo_rt.pdf} \titleimage{logo_rt.pdf}
\newcommand{\presentationdate}{\emph{set date here}} \newcommand{\presentationdate}{July 26 2023}
%% Gruppenlogo %% Gruppenlogo
\grouplogo{} \grouplogo{}
@ -27,7 +27,7 @@
% Beginn der Präsentation % Beginn der Präsentation
\title[Differentiable Monte Carlo Ray Tracing through Edge Sampling]{Differentiable Monte Carlo Ray Tracing through Edge Sampling} \title[Differentiable Monte Carlo Ray Tracing through Edge Sampling]{Differentiable Monte Carlo Ray Tracing through Edge Sampling [\cite{ACM:diffable_raytracing}]}
\subtitle{Presentation for the Proseminar ``Differentiable Programming``} \subtitle{Presentation for the Proseminar ``Differentiable Programming``}
\author[Clemens Dautermann]{Clemens Dautermann} \author[Clemens Dautermann]{Clemens Dautermann}