diff --git a/presentation/modules/basic_terms.tex b/presentation/modules/basic_terms.tex index 76d4515..d3965ae 100644 --- a/presentation/modules/basic_terms.tex +++ b/presentation/modules/basic_terms.tex @@ -8,15 +8,15 @@ \begin{frame}{Raytracing} \begin{center} \begin{minipage}{0.4\linewidth} - \flushleft Turn 3D model... - \includegraphics[width=\linewidth]{presentation/img/proseminar_workbench.png} + \flushleft{} Turn 3D model... + \includegraphics[width=\linewidth]{img/proseminar_workbench.png} \end{minipage} - \pause + \pause{} $\rightarrow$ \hspace{10mm} \begin{minipage}{0.4\linewidth} - \flushright ...into a physically accurate image - \includegraphics[width=0.8\linewidth]{presentation/img/proseminar_cycles.png} + \flushright{} \ldots into a physically accurate image + \includegraphics[width=0.8\linewidth]{proseminar_cycles.png} \end{minipage} \end{center} \end{frame} @@ -38,7 +38,7 @@ %\end{itemize} [\cite{ACM:rendering_equation}] \item Problem: This equation is not analytically solvable\\ - $\rightarrow$ Solve numerically using Monte-Carlo integration (i.e. raytracing) + $\rightarrow$ Solve numerically using Monte-Carlo integration (i.e.\ raytracing) \end{itemize} \end{block} \end{frame} @@ -50,33 +50,33 @@ \item Cast rays from the camera towards the scene \item Calculate geometry intersection \item Trace rays from intersection point to all light sources - \item Calculate color from emission and the sampled reflected light taking geometry into account (e.g. occlusion) - \item Have the ray "bounce around" to account for indirect lighting + \item Calculate color from emission and the sampled reflected light, taking geometry into account (e.g.\ occlusion) + \item Have the ray ``bounce around' to account for indirect lighting \end{itemize} \end{block} - \pause + \pause{} \begin{block}{Variables} Scene depends on lots of variables: \begin{itemize} - \item Material properties (roughness, emission strength, color, transmissiveness...) + \item Material properties (roughness, emission strength, color, transmissiveness\ldots) \item Vertex positions \end{itemize} \end{block} \end{frame} \begin{frame}{Visualization} - \input{presentation/diagrams/raytracing_anim} + \input{diagrams/raytracing_anim} \end{frame} -\begin{frame}{Image synthesis - optical phenomena} +\begin{frame}{Image synthesis~-~optical phenomena} \centering - \includegraphics[width=0.38\linewidth]{presentation/img/proseminar_cycles_annotated.png} + \includegraphics[width=0.38\linewidth]{proseminar_cycles_annotated.png} \end{frame} \subsection{Differentiable rendering} \begin{frame}{Differentiable rendering} \begin{itemize} - \item Given: Function mapping a 3D-scene to a real number (e.g. error function) + \item Given: Function mapping a 3D-scene to a real number (e.g.\ error function) \item Target: Calculate gradient of that function \item Required: Differentiate with respect to any scene parameter \end{itemize} diff --git a/presentation/modules/motivation.tex b/presentation/modules/motivation.tex index 9209790..cccbbad 100644 --- a/presentation/modules/motivation.tex +++ b/presentation/modules/motivation.tex @@ -1,8 +1,8 @@ -\section{Motivation - why differentiable rendering is important} +\section{Motivation~-~why differentiable rendering is important} \begin{frame} \centering \Huge - Motivation - why differentiable rendering is important + Motivation~-~why differentiable rendering is important \end{frame} \begin{frame}{Importance of differentiable rendering} \begin{block}{Examples for Applications} @@ -36,7 +36,7 @@ with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\ \end{frame} -\begin{frame}{Inverse rendering - current example} +\begin{frame}{Inverse rendering~-~current example} \centering \includemedia[ width=0.62\linewidth,height=0.35\linewidth, @@ -52,7 +52,7 @@ with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\ ]{}{VPlayer.swf} \\ - Source: \cite{ACM:inverse_rendering_signed_distance_function} + Source:~\cite{ACM:inverse_rendering_signed_distance_function} \end{frame} \subsection{Adversarial image generation} \begin{frame}{Adversarial image generation} @@ -63,13 +63,13 @@ with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\ $\implies$ Given a set of labels and a set of data, assign a label to each element in the dataset \item Labeled data is needed to train classifier network \end{itemize} - \pause + \pause{} \vspace{15mm} 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. Here’s How to Use it Right} \end{minipage} \begin{minipage}{0.5\linewidth} \centering - \includegraphics[width=0.5\linewidth]{presentation/img/recaptcha_example.png} + \includegraphics[width=0.5\linewidth]{img/recaptcha_example.png} \end{minipage} \end{center} \end{frame} @@ -77,23 +77,23 @@ with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\ \begin{itemize} \item Problem: Labeling training data is tedious\\ $\implies$ We want to automatically generate training data - \item One solution: Generative adversarial networks. (e.g. AutoGAN [\cite{DBLP:AutoGAN}])\\ - $\implies$ Impossible to make semantic changes to the image (e.g. lighting) + \item One solution: Generative adversarial networks (e.g. AutoGAN [\cite{DBLP:AutoGAN}]).\\ + $\implies$ Impossible to make semantic changes to the image \item Different solution: Use differentiable raytracing\\ $\implies$ Scene parameters can be manipulated \end{itemize} \end{frame} -\begin{frame}{Adversarial image generation - example [\cite{DBLP:journals/corr/abs-1910-00727}]} +\begin{frame}{Adversarial image generation~-~example [\cite{DBLP:journals/corr/abs-1910-00727}]} \begin{center} \begin{figure} \begin{minipage}{0.45\linewidth} - \includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/correct_car.png} - \includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/correct_pedestrian.png} + \includegraphics[width=\linewidth]{img/adversarial_rendering_results/correct_car.png} + \includegraphics[width=\linewidth]{img/adversarial_rendering_results/correct_pedestrian.png} \end{minipage} \begin{minipage}{0.45\linewidth} - \includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/incorrect_car.png} - \includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/incorrect_pedestrian.png} + \includegraphics[width=\linewidth]{img/adversarial_rendering_results/incorrect_car.png} + \includegraphics[width=\linewidth]{img/adversarial_rendering_results/incorrect_pedestrian.png} \end{minipage} \centering \caption{Left: Original images, features are correctly identified.\\ diff --git a/presentation/modules/problems.tex b/presentation/modules/problems.tex index 99d7849..4afaa37 100644 --- a/presentation/modules/problems.tex +++ b/presentation/modules/problems.tex @@ -16,11 +16,11 @@ \end{frame} \begin{frame}{primary occlusion} \centering - \input{presentation/diagrams/diagramm_occlusion.tex} + \input{diagrams/diagramm_occlusion.tex} \end{frame} \begin{frame}{Angle change $\leftrightarrow$ visibility change} \centering - \input{presentation/diagrams/geometry_term_diff.tex} + \input{diagrams/geometry_term_diff.tex} \end{frame} \subsection{Former methods} \begin{frame}{Former methods} @@ -33,41 +33,37 @@ \end{itemize} \end{block} \end{frame} -\begin{frame}{Former methods - visualization} +\begin{frame}{Former methods~-~visualization} \begin{figure} \begin{minipage}{0.12\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/comparisons/plane.png} - \caption{planar scene} - \label{fig:planar-scene} + \includegraphics[width=\linewidth]{img/comparisons/plane.png} + \caption{planar scene}\label{fig:planar-scene} \end{figure} \end{minipage} \hspace{2mm} \begin{minipage}{0.12\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/comparisons/opendr.png} - \caption{OpenDR} - \label{fig:grad-OpenDR} + \includegraphics[width=\linewidth]{img/comparisons/opendr.png} + \caption{OpenDR}\label{fig:grad-OpenDR} \end{figure} \end{minipage} \hspace{2mm} \begin{minipage}{0.12\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/comparisons/Neural.png} - \caption{Neural} - \label{fig:grad-Neural3DMesh} + \includegraphics[width=\linewidth]{img/comparisons/Neural.png} + \caption{Neural}\label{fig:grad-Neural3DMesh} \end{figure} \end{minipage} \hspace{2mm} \begin{minipage}{0.12\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/comparisons/ours.png} - \caption{this paper} - \label{fig:grad-this} + \includegraphics[width=\linewidth]{img/comparisons/ours.png} + \caption{this paper}\label{fig:grad-this} \end{figure} \end{minipage} \hspace{4mm} @@ -75,11 +71,10 @@ \caption{ %A plane lit by a point light source. Images visualize a gradient with respect to the plane moving right. Since the light source remains static the gradient should only be $\ne 0$ at the boundaries. OpenDR and Neural are not able to correctly calculate the gradients as they are based on color buffer differences.\\ Visualizations of gradients calculated by different differentiable renderers.\\ - Images: \cite{ACM:diffable_raytracing} - } - \label{fig:grad-explanation} + Images:~\cite{ACM:diffable_raytracing} + }\label{fig:grad-explanation} \end{minipage} \end{figure} - \pause + \pause{} $\implies$ Problems are caused at the edges and by approximation using color buffers \end{frame} \ No newline at end of file diff --git a/presentation/modules/this_method.tex b/presentation/modules/this_method.tex index d55adfc..f83c615 100644 --- a/presentation/modules/this_method.tex +++ b/presentation/modules/this_method.tex @@ -15,7 +15,7 @@ \item Ignore time domain \end{itemize} \end{block} - \pause + \pause{} \begin{block}{Idea} \begin{itemize} \item Traditional sampling for continuous regions @@ -24,14 +24,14 @@ \end{block} \end{frame} -\begin{frame}{Edge sampling - Illustration} +\begin{frame}{Edge sampling~-~Illustration} \centering - \input{presentation/diagrams/edge_sampling} + \input{diagrams/edge_sampling} \end{frame} -\begin{frame}{Edge sampling - half spaces} +\begin{frame}{Edge sampling~-~half spaces} \begin{minipage}{0.5\linewidth} - \input{presentation/diagrams/halfspaces} + \input{diagrams/halfspaces} \end{minipage} \begin{minipage}{0.45\linewidth} \begin{block}{Principle} @@ -45,7 +45,7 @@ \end{minipage} \end{frame} -\begin{frame}[t]{Edge sampling - math background} +\begin{frame}[t]{Edge sampling~-~math background} Color: \only<1>{ \[ @@ -66,7 +66,7 @@ \sum_i\iint \underbrace{\theta(}_{\text{step function}} \underbrace{\alpha_i(x,y)}_{\text{Edge equation formed by the triangle edge}}) - \underbrace{f_i(x,y)}_{\text{half space (may contain heaviside step functions itself)}} + \underbrace{f_i(x,y)}_{\text{half space (may contain Heaviside step functions itself)}} \] } @@ -86,7 +86,7 @@ \end{frame} -\begin{frame}{Inverse rendering - Results in this paper} +\begin{frame}{Inverse rendering~-~Results in this paper} \begin{block}{Inverse rendering here} \begin{itemize} \item Parameters: Camera pose, material parameters, light source intensity @@ -101,32 +101,29 @@ \end{block} \end{frame} -\begin{frame}{Inverse rendering - results in this paper} +\begin{frame}{Inverse rendering~-~results in this paper} \begin{center} \begin{minipage}{0.25\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/results/guess.png} - \caption{Initial guess} - \label{fig:results-guess} + \includegraphics[width=\linewidth]{img/results/guess.png} + \caption{Initial guess}\label{fig:results-guess} \end{figure} \end{minipage} \hspace{2mm} \begin{minipage}{0.25\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/results/photo.png} - \caption{Target (photograph)} - \label{fig:results-target} + \includegraphics[width=\linewidth]{img/results/photo.png} + \caption{Target (photograph)}\label{fig:results-target} \end{figure} \end{minipage} \hspace{2mm} \begin{minipage}{0.25\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/results/result.png} - \caption{Optimized image} - \label{fig:results-optimized} + \includegraphics[width=\linewidth]{img/results/result.png} + \caption{Optimized image}\label{fig:results-optimized} \end{figure} \end{minipage} \end{center} @@ -136,52 +133,50 @@ \begin{figure} \centering \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/triangles/img-027.png} + \includegraphics[width=\linewidth]{img/render_optimization/triangles/img-027.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/shade/img-028.png} + \includegraphics[width=\linewidth]{img/render_optimization/shade/img-028.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy/img-029.png} + \includegraphics[width=\linewidth]{img/render_optimization/glossy/img-029.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy_recv/img-030.png} + \includegraphics[width=\linewidth]{img/render_optimization/glossy_recv/img-030.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/specular/img-031.png} + \includegraphics[width=\linewidth]{img/render_optimization/specular/img-031.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/global_illumination/img-032.png} + \includegraphics[width=\linewidth]{img/render_optimization/global_illumination/img-032.png} \end{minipage} \begin{minipage}{0.1\linewidth} - \caption{initial guess} - \label{fig:grid_init_guess} + \caption{initial guess}\label{fig:grid_init_guess} \end{minipage} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%% second row %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{figure} \centering \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/triangles/img-033.png} + \includegraphics[width=\linewidth]{img/render_optimization/triangles/img-033.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/shade/img-034.png} + \includegraphics[width=\linewidth]{img/render_optimization/shade/img-034.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy/img-035.png} + \includegraphics[width=\linewidth]{img/render_optimization/glossy/img-035.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy_recv/img-036.png} + \includegraphics[width=\linewidth]{img/render_optimization/glossy_recv/img-036.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/specular/img-037.png} + \includegraphics[width=\linewidth]{img/render_optimization/specular/img-037.png} \end{minipage} \begin{minipage}{0.14\linewidth} - \includegraphics[width=\linewidth]{presentation/img/render_optimization/global_illumination/img-038.png} + \includegraphics[width=\linewidth]{img/render_optimization/global_illumination/img-038.png} \end{minipage} \begin{minipage}{0.1\linewidth} - \caption{target images} - \label{fig:grid_target} + \caption{target images}\label{fig:grid_target} \end{minipage} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%% third row %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -190,102 +185,96 @@ \begin{minipage}{0.15\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/render_optimization/triangles/img-039.png} + \includegraphics[width=\linewidth]{img/render_optimization/triangles/img-039.png} \caption{primary occlusion} \end{figure} \end{minipage} \begin{minipage}{0.14\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/render_optimization/shade/img-040.png} + \includegraphics[width=\linewidth]{img/render_optimization/shade/img-040.png} \caption{shadow} \end{figure} \end{minipage} \begin{minipage}{0.14\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy/img-041.png} + \includegraphics[width=\linewidth]{img/render_optimization/glossy/img-041.png} \caption{glossy} \end{figure} \end{minipage} \begin{minipage}{0.14\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy_recv/img-042.png} + \includegraphics[width=\linewidth]{img/render_optimization/glossy_recv/img-042.png} \caption{glossy receiver} \end{figure} \end{minipage} \begin{minipage}{0.14\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/render_optimization/specular/img-043.png} + \includegraphics[width=\linewidth]{img/render_optimization/specular/img-043.png} \caption{near-specular} \end{figure} \end{minipage} \begin{minipage}{0.15\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/render_optimization/global_illumination/img-044.png} + \includegraphics[width=\linewidth]{img/render_optimization/global_illumination/img-044.png} \caption{global illumination} \end{figure} \end{minipage} \begin{minipage}{0.08\linewidth} - \caption{optimized result} - \label{fig:grid_optimized} + \caption{optimized result}\label{fig:grid_optimized} \end{minipage} \end{figure} \end{frame} -\begin{frame}{Inverse rendering - example from this paper} +\begin{frame}{Inverse rendering~-~example from this paper} \centering \begin{minipage}{0.19\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_init.png} + \includegraphics[width=\linewidth]{img/teapot_video/teapot_init.png} \vspace{0mm} - \caption{initial guess} - \label{fig:teapot_init} + \caption{initial guess}\label{fig:teapot_init} \end{figure} \end{minipage} \begin{minipage}{0.19\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_init_diff.png} + \includegraphics[width=\linewidth]{img/teapot_video/teapot_init_diff.png} \caption{difference\\ - initial $\leftrightarrow$ target} - \label{fig:teapot_init_diff} + initial $\leftrightarrow$ target}\label{fig:teapot_init_diff} \end{figure} \end{minipage} \begin{minipage}{0.19\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_target.png} + \includegraphics[width=\linewidth]{img/teapot_video/teapot_target.png} \vspace{0mm} - \caption{target image} - \label{fig:teapot_target} + \caption{target image}\label{fig:teapot_target} \end{figure} \end{minipage} \begin{minipage}{0.19\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_final_diff.png} + \includegraphics[width=\linewidth]{img/teapot_video/teapot_final_diff.png} \caption{difference\\ - final $\leftrightarrow$ target} - \label{fig:teapot_final_diff} + final $\leftrightarrow$ target}\label{fig:teapot_final_diff} \end{figure} \end{minipage} \begin{minipage}{0.19\linewidth} \begin{figure} \centering - \includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_final.png} + \includegraphics[width=\linewidth]{img/teapot_video/teapot_final.png} \vspace{0mm} - \caption{final image} - \label{fig:teapot_final} + \caption{final image}\label{fig:teapot_final} \end{figure} \end{minipage} \end{frame} -\begin{frame}{Inverse rendering - example from this paper} +\begin{frame}{Inverse rendering~-~example from this paper} \centering \includemedia[ width=0.62\linewidth,height=0.35\linewidth, @@ -300,22 +289,22 @@ } ]{}{VPlayer.swf} \\ - All media in this section taken from \cite{ACM:diffable_raytracing} + All media in this section taken from~\cite{ACM:diffable_raytracing} \end{frame} -\subsection{Conclusion - What can this method do?} +\subsection{Conclusion~-~What can this method do?} \begin{frame}{Conclusion} \setbeamercovered{transparent} \begin{block}{Possibilities} \begin{itemize} \item Differentiate with respect to \emph{any} scene parameter \item Arbitrary non-dirac-materials - \item Global illumination, occlusion, shadows etc... + \item Global illumination, occlusion, shadows etc\ldots \item Automatic differentiation (PyTorch) $\rightarrow$ Inverse rendering \end{itemize} \end{block} - \pause + \pause{} \begin{block}{Some Limitations} \begin{itemize} diff --git a/presentation/presentation.tex b/presentation/presentation.tex index b19c04e..d6a0cb7 100644 --- a/presentation/presentation.tex +++ b/presentation/presentation.tex @@ -22,13 +22,13 @@ \grouplogo{} %% Gruppenname und Breite (Standard: 50 mm) -\groupname{Proseminar ''differentiable programming''} +\groupname{Proseminar ``differentiable programming``} %\groupnamewidth{50mm} % Beginn der Präsentation \title[Differentiable Monte Carlo Ray Tracing through Edge Sampling]{Differentiable Monte Carlo Ray Tracing through Edge Sampling} -\subtitle{presentation for the proseminar ''differentiable programming''} +\subtitle{presentation for the proseminar ``differentiable programming``} \author[Clemens Dautermann]{Clemens Dautermann} \date[\presentationdate]{\presentationdate} @@ -42,16 +42,16 @@ \begin{document} %Titelseite -\KITtitleframe +\KITtitleframe{} \begin{frame}{Outline} \tableofcontents \end{frame} - \include{presentation/modules/basic_terms} - \include{presentation/modules/motivation} - \include{presentation/modules/problems} - \include{presentation/modules/this_method} + \include{modules/basic_terms} + \include{modules/motivation} + \include{modules/problems} + \include{modules/this_method} \begin{frame}[allowframebreaks=1]{Bibliography} - \printbibliography + \printbibliography{} \end{frame} \end{document} \ No newline at end of file