Compare commits
No commits in common. "bwhandout" and "master" have entirely different histories.
18 changed files with 133 additions and 192 deletions
|
|
@ -21,7 +21,7 @@
|
|||
% occlusion tri
|
||||
\draw[
|
||||
fill,
|
||||
darkgray
|
||||
red
|
||||
] (3,2) -- (4.5,0.2) -- (6,3);
|
||||
|
||||
% samples
|
||||
|
|
@ -33,5 +33,5 @@
|
|||
5/0.5,
|
||||
5/2.5
|
||||
}
|
||||
\node[fill = black] at (\x,\y) {};
|
||||
\node[fill = yellow] at (\x,\y) {};
|
||||
\end{tikzpicture}
|
||||
|
|
@ -1,24 +1,24 @@
|
|||
\begin{tikzpicture}[scale = 0.9, every node/.style={scale=0.9}]
|
||||
|
||||
\def\raynum{18}
|
||||
\def\raynum{60}
|
||||
|
||||
\foreach \x in {0,...,\raynum} {
|
||||
\ifthenelse{\x < 3 \OR \x>15}
|
||||
\ifthenelse{\x < 10 \OR \x>50}
|
||||
{
|
||||
\draw[color = black] (\x /\raynum * 6 ,0) -- (3,4);
|
||||
\draw[color = darkgray] (\x /\raynum * 6 ,0) -- (3,4);
|
||||
}{
|
||||
\draw[color = lightgray] (\x /\raynum * 6 ,0) -- (3,4);
|
||||
\draw[color = red] (\x /\raynum * 6 ,0) -- (3,4);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
\fill[
|
||||
white
|
||||
] (1.48,1) -- (4.52,1) -- (5.02,0) -- (0.98,0) -- cycle;
|
||||
] (1.49,1) -- (4.51,1) -- (5.01,0) -- (0.99,0) -- cycle;
|
||||
|
||||
|
||||
\draw [color=black] (0,0) -- node[below]{wall} (6,0) ; % wall
|
||||
\draw [color=black](1.5,1) -- node[below]{blocker} (4.5,1); %blocker
|
||||
\draw [color=darkgray] (0,0) -- node[below]{wall} (6,0) ; % wall
|
||||
\draw [color=red](1.5,1) -- node[below]{blocker} (4.5,1); %blocker
|
||||
|
||||
%cam
|
||||
\node[
|
||||
|
|
@ -37,11 +37,11 @@
|
|||
|
||||
|
||||
\fill[
|
||||
gray
|
||||
red
|
||||
] (5,3) -- (6.7,3) -- (6.7,3.3) -- (5,3.3) -- cycle;
|
||||
|
||||
\draw[black] (8,2) coordinate (darkgray_ray_isec) -- (5,5) coordinate (orig);
|
||||
\draw[gray] (6.4,3.3) coordinate (red_ray_isec) -- (5,5);
|
||||
\draw[darkgray] (8,2) coordinate (darkgray_ray_isec) -- (5,5) coordinate (orig);
|
||||
\draw[red] (6.4,3.3) coordinate (red_ray_isec) -- (5,5);
|
||||
|
||||
%line
|
||||
\draw (mag.north east) -- (7,2);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
% occlusion tri
|
||||
\draw[
|
||||
fill,
|
||||
darkgray
|
||||
red
|
||||
] (3,2) -- (4.5,0.2) -- (6,3);
|
||||
|
||||
% samples
|
||||
|
|
@ -33,10 +33,10 @@
|
|||
3.5/2.5,
|
||||
5.5/0.5
|
||||
}
|
||||
\node[fill = black] at (\x,\y) {};
|
||||
\node[fill = yellow] at (\x,\y) {};
|
||||
|
||||
\node[
|
||||
fill = black,
|
||||
fill opacity = 0.5,
|
||||
fill = yellow,
|
||||
fill opacity = 0.4,
|
||||
] at (4.5,1.5) {};
|
||||
\end{tikzpicture}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
\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) -- (1,0) plot coordinates {(0,0) (1,0)}[color=black];
|
||||
\draw (1,1) -- (2,1) plot coordinates {(1,1) (2,1)}[color=black];
|
||||
\draw (0,0) -- (1,0) plot coordinates {(0,0) (1,0)}[color=red];
|
||||
\draw (1,1) -- (2,1) plot coordinates {(1,1) (2,1)}[color=red];
|
||||
\draw (0,0) node[left] {$0$};
|
||||
\draw (0,1) node[left] {$1$};
|
||||
\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,-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=black];
|
||||
\draw (0,0) -- (2,0) plot coordinates {(0,0) (2,0)}[color=red];
|
||||
\draw (0,0) node[left] {$0$};
|
||||
\draw (0,1) node[left] {$1$};
|
||||
\draw (0,2) node[left] {$\infty$};
|
||||
\draw (1,2) node[color=black] {$\bullet$};
|
||||
\draw (1,2) node[color=red] {$\bullet$};
|
||||
\draw (1,-0.7) node[below] {$\omega_0$};
|
||||
\end{tikzpicture}
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
\draw[
|
||||
fill,
|
||||
gray
|
||||
red
|
||||
] (-2, -3) -- (-2,-4) -- (2,-6) -- (4.3,-6) -- (4.3,-4) -- cycle;
|
||||
|
||||
\draw[
|
||||
|
|
@ -17,12 +17,12 @@
|
|||
|
||||
\draw[
|
||||
fill,
|
||||
darkgray
|
||||
blue
|
||||
] (1.7,-2) circle (15pt);
|
||||
|
||||
\draw[
|
||||
fill,
|
||||
darkgray
|
||||
blue
|
||||
] (0.4,-4.2) circle (15pt);
|
||||
|
||||
\node (fu) at (1.4,-1) {\LARGE $f_u$ $(+)$};
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
%\newcommand{\CLASSINPUTtoptextmargin}{1.5cm}
|
||||
\newcommand{\CLASSINPUTbottomtextmargin}{2.5cm}
|
||||
\documentclass[conference, a4paper, hidelinks]{IEEEtran}
|
||||
|
||||
|
|
@ -36,7 +37,6 @@
|
|||
\usepackage{amsfonts}
|
||||
\usepackage{caption}
|
||||
\DeclareCaptionType{eqcap}[Equation][List of equations]
|
||||
\usepackage[T1]{fontenc}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{calc,
|
||||
|
|
@ -143,13 +143,13 @@ Given this function and a set of target images the inverse rendering problem can
|
|||
\begin{figure}[h]
|
||||
\centering
|
||||
\subfloat[initial guess]{
|
||||
\includegraphics[width=0.3\linewidth]{../presentation/img/results/guess-bw.png}
|
||||
\includegraphics[width=0.3\linewidth]{../presentation/img/results/guess.png}
|
||||
}
|
||||
\subfloat[optimized result]{
|
||||
\includegraphics[width=0.3\linewidth]{../presentation/img/results/result-bw.png}\label{fig:result_image}
|
||||
\includegraphics[width=0.3\linewidth]{../presentation/img/results/result.png}\label{fig:result_image}
|
||||
}
|
||||
\subfloat[target]{
|
||||
\includegraphics[width=0.3\linewidth]{../presentation/img/results/photo-bw.png}
|
||||
\includegraphics[width=0.3\linewidth]{../presentation/img/results/photo.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}
|
||||
\end{figure}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -41,7 +41,7 @@
|
|||
\begin{tikzpicture}
|
||||
% scene seite
|
||||
\node[above] at (2,2) {side view};
|
||||
\node[below] at (2,-0.5) {\footnotesize (no indirect lighting)};
|
||||
\node[below] at (2,-0.5) {(no indirect lighting)};
|
||||
|
||||
\draw[
|
||||
kit-green100
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 87 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 81 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 80 KiB |
|
|
@ -68,10 +68,10 @@
|
|||
\input{diagrams/raytracing_anim}
|
||||
\end{frame}
|
||||
|
||||
%\begin{frame}{Image synthesis~-~Optical Phenomena}
|
||||
% \centering
|
||||
% \includegraphics[width=0.38\linewidth]{proseminar_cycles_annotated.png}
|
||||
%\end{frame}
|
||||
\begin{frame}{Image synthesis~-~Optical Phenomena}
|
||||
\centering
|
||||
\includegraphics[width=0.38\linewidth]{proseminar_cycles_annotated.png}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Differentiable Rendering}
|
||||
\begin{frame}{Differentiable Rendering}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\
|
|||
\end{itemize}
|
||||
\pause{}
|
||||
\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. Here’s How to Use it Right}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.5\linewidth}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
\section{Problems}
|
||||
% \begin{frame}
|
||||
% \begin{frame}
|
||||
% \centering
|
||||
% \Huge
|
||||
% Problems
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@
|
|||
\setbeamercovered{transparent}
|
||||
\begin{block}{Assumptions}
|
||||
\begin{itemize}
|
||||
\item Continuous parameter set
|
||||
\item Triangle meshes
|
||||
\item No interpenetrating triangles
|
||||
\item Continuous parameter set
|
||||
\item No point lights, no perfectly specular surfaces
|
||||
\item Ignore time domain
|
||||
\end{itemize}
|
||||
|
|
@ -66,8 +66,8 @@
|
|||
\[
|
||||
\sum_i\iint
|
||||
\underbrace{\theta(}_{\text{Step function}}
|
||||
\underbrace{\alpha_i(x,y)}_{\text{Edge equation}})
|
||||
\underbrace{f_i(x,y)}_{\text{Half space}}
|
||||
\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)}}
|
||||
\]
|
||||
}
|
||||
|
||||
|
|
@ -87,66 +87,47 @@
|
|||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Inverse Rendering~-~Example from this Paper}
|
||||
\centering
|
||||
\begin{minipage}{0.19\linewidth}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{img/teapot_video/teapot_init.png}
|
||||
\vspace{0mm}
|
||||
\caption{initial guess}\label{fig:teapot_init}
|
||||
\end{figure}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.19\linewidth}
|
||||
\begin{figure}
|
||||
\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}
|
||||
\begin{frame}{Inverse Rendering~-~Results in this Paper}
|
||||
\begin{block}{Inverse rendering here}
|
||||
\begin{itemize}
|
||||
\item Parameters: Camera pose, material parameters, light source intensity
|
||||
\item Scene: Strong indirect illumination and non lambertian materials
|
||||
\item Initial guess: Almost all objects white, arbitrary camera pose
|
||||
\item 177 parameters
|
||||
\item Loss function: Absolute difference
|
||||
\item ADAM optimizer
|
||||
\item Start resolution of $64\times 64$, linearly increase to $512\times 512$ in 8 steps\\
|
||||
$\implies$ Avoid local minima of the loss function
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\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
|
||||
\includemedia[
|
||||
width=0.62\linewidth,height=0.35\linewidth,
|
||||
activate=onclick,
|
||||
addresource=teapot.mp4,
|
||||
playbutton=fancy,
|
||||
transparent,
|
||||
passcontext,
|
||||
flashvars={
|
||||
source=teapot.mp4
|
||||
&autoPlay=true
|
||||
}
|
||||
]{}{VPlayer.swf}
|
||||
\\
|
||||
All media in this section taken from~\cite{ACM:diffable_raytracing}
|
||||
\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]{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]{img/results/result.png}
|
||||
\caption{Optimized image}\label{fig:results-optimized}
|
||||
\end{figure}
|
||||
\end{minipage}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
|
|
@ -250,47 +231,66 @@
|
|||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Inverse Rendering~-~Results in this Paper}
|
||||
\begin{block}{Inverse rendering here}
|
||||
\begin{itemize}
|
||||
\item Parameters: Camera pose, material parameters, light source intensity
|
||||
\item Scene: Strong indirect illumination and non lambertian materials
|
||||
\item Initial guess: Almost all objects white, arbitrary camera pose
|
||||
\item 177 parameters
|
||||
\item Loss function: Absolute difference
|
||||
\item ADAM optimizer
|
||||
\item Start resolution of $64\times 64$, linearly increase to $512\times 512$ in 8 steps\\
|
||||
$\implies$ Avoid local minima of the loss function
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\begin{frame}{Inverse Rendering~-~Example from this Paper}
|
||||
\centering
|
||||
\begin{minipage}{0.19\linewidth}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{img/teapot_video/teapot_init.png}
|
||||
\vspace{0mm}
|
||||
\caption{initial guess}\label{fig:teapot_init}
|
||||
\end{figure}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.19\linewidth}
|
||||
\begin{figure}
|
||||
\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}
|
||||
|
||||
\begin{frame}{Inverse Rendering~-~Results in this Paper}
|
||||
\begin{center}
|
||||
\begin{minipage}{0.25\linewidth}
|
||||
\begin{figure}
|
||||
\begin{frame}{Inverse Rendering~-~Example from this Paper}
|
||||
\centering
|
||||
\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]{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]{img/results/result.png}
|
||||
\caption{Optimized image}\label{fig:results-optimized}
|
||||
\end{figure}
|
||||
\end{minipage}
|
||||
\end{center}
|
||||
\includemedia[
|
||||
width=0.62\linewidth,height=0.35\linewidth,
|
||||
activate=onclick,
|
||||
addresource=teapot.mp4,
|
||||
playbutton=fancy,
|
||||
transparent,
|
||||
passcontext,
|
||||
flashvars={
|
||||
source=teapot.mp4
|
||||
&autoPlay=true
|
||||
}
|
||||
]{}{VPlayer.swf}
|
||||
\\
|
||||
All media in this section taken from~\cite{ACM:diffable_raytracing}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Conclusion~-~What can this Method do?}
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
# 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
|
||||
Binary file not shown.
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
\titleimage{logo_rt.pdf}
|
||||
|
||||
\newcommand{\presentationdate}{July 26 2023}
|
||||
\newcommand{\presentationdate}{\emph{set date here}}
|
||||
|
||||
%% Gruppenlogo
|
||||
\grouplogo{}
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
% Beginn der Präsentation
|
||||
|
||||
\title[Differentiable Monte Carlo Ray Tracing through Edge Sampling]{Differentiable Monte Carlo Ray Tracing through Edge Sampling [\cite{ACM:diffable_raytracing}]}
|
||||
\title[Differentiable Monte Carlo Ray Tracing through Edge Sampling]{Differentiable Monte Carlo Ray Tracing through Edge Sampling}
|
||||
\subtitle{Presentation for the Proseminar ``Differentiable Programming``}
|
||||
\author[Clemens Dautermann]{Clemens Dautermann}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue