chapter 1-4 complete. 2 left.
This commit is contained in:
parent
2f62ba838b
commit
f15ca0163e
@ -190,3 +190,15 @@
|
|||||||
year={2010},
|
year={2010},
|
||||||
url={http://www.brnt.eu/phd/}
|
url={http://www.brnt.eu/phd/}
|
||||||
}
|
}
|
||||||
|
@article{aschenbach2015,
|
||||||
|
author = {Achenbach, Jascha and Zell, Eduard and Botsch, Mario},
|
||||||
|
booktitle = {Vision, Modeling \& Visualization},
|
||||||
|
journal = {Proceedings of Vision, Modeling and Visualization},
|
||||||
|
location = {Aachen, Germany},
|
||||||
|
pages = {1--8},
|
||||||
|
publisher = {Eurographics Association},
|
||||||
|
title = {Accurate Face Reconstruction through Anisotropic Fitting and Eye Correction},
|
||||||
|
year = {2015},
|
||||||
|
url = {http://graphics.uni-bielefeld.de/publications/disclaimer.php?dlurl=vmv15.pdf},
|
||||||
|
ISBN = {978-3-905674-95-8},
|
||||||
|
}
|
||||||
|
BIN
arbeit/img/example3d_grid.png
Normal file
BIN
arbeit/img/example3d_grid.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 882 KiB |
88
arbeit/ma.md
88
arbeit/ma.md
@ -548,7 +548,6 @@ $$J(Err(u,v,w)) \cdot \Delta \left( \begin{array}{c} u \\ v \\ w \end{array} \ri
|
|||||||
and use Cramers rule for inverting the small Jacobian and solving this system of
|
and use Cramers rule for inverting the small Jacobian and solving this system of
|
||||||
linear equations.
|
linear equations.
|
||||||
|
|
||||||
|
|
||||||
## Deformation Grid
|
## Deformation Grid
|
||||||
|
|
||||||
As mentioned in chapter \ref{sec:back:evo}, the way of choosing the
|
As mentioned in chapter \ref{sec:back:evo}, the way of choosing the
|
||||||
@ -594,7 +593,7 @@ central points are not relevant for the parametrization of the circle.
|
|||||||
\unsure[inline]{erwähnen, dass man aus $\vec{D}$ einfach die Null--Spalten
|
\unsure[inline]{erwähnen, dass man aus $\vec{D}$ einfach die Null--Spalten
|
||||||
entfernen kann?}
|
entfernen kann?}
|
||||||
|
|
||||||
For our tests we chose different uniformly sized grids and added gaussian noise
|
For our tests we chose different uniformly sized grids and added noise
|
||||||
onto each control-point^[For the special case of the outer layer we only applied
|
onto each control-point^[For the special case of the outer layer we only applied
|
||||||
noise away from the object, so the object is still confined in the convex hull
|
noise away from the object, so the object is still confined in the convex hull
|
||||||
of the control--points.] to simulate different starting-conditions.
|
of the control--points.] to simulate different starting-conditions.
|
||||||
@ -603,8 +602,6 @@ of the control--points.] to simulate different starting-conditions.
|
|||||||
|
|
||||||
# Scenarios for testing evolvability criteria using \acf{FFD}
|
# Scenarios for testing evolvability criteria using \acf{FFD}
|
||||||
\label{sec:eval}
|
\label{sec:eval}
|
||||||
\improvement[inline]{für 1d und 3d entweder konsistent source/target oder
|
|
||||||
anders. Weil sonst in 1d $\vec{s}$ das Ziel, in 3d $\vec{t}$ das Ziel.}
|
|
||||||
|
|
||||||
In our experiments we use the same two testing--scenarios, that were also used
|
In our experiments we use the same two testing--scenarios, that were also used
|
||||||
by \cite{anrichterEvol}. The first scenario deforms a plane into a shape
|
by \cite{anrichterEvol}. The first scenario deforms a plane into a shape
|
||||||
@ -623,7 +620,7 @@ which is also used by Richter et al.\cite{anrichterEvol} using the same
|
|||||||
discretization to $150 \times 150$ points for a total of $n = 22\,500$ vertices. The
|
discretization to $150 \times 150$ points for a total of $n = 22\,500$ vertices. The
|
||||||
shape is given by the following definition
|
shape is given by the following definition
|
||||||
$$
|
$$
|
||||||
s(x,y) =
|
t(x,y) =
|
||||||
\begin{cases}
|
\begin{cases}
|
||||||
0.5 \cos(4\pi \cdot q^{0.5}) + 0.5 & q(x,y) < \frac{1}{16},\\
|
0.5 \cos(4\pi \cdot q^{0.5}) + 0.5 & q(x,y) < \frac{1}{16},\\
|
||||||
2(y-x) & 0 < y-x < 0.5,\\
|
2(y-x) & 0 < y-x < 0.5,\\
|
||||||
@ -633,7 +630,7 @@ $$
|
|||||||
with $(x,y) \in [0,2] \times [0,1]$ and $q(x,y)=(x-1.5)^2 + (y-0.5)^2$, which we have
|
with $(x,y) \in [0,2] \times [0,1]$ and $q(x,y)=(x-1.5)^2 + (y-0.5)^2$, which we have
|
||||||
visualized in figure \ref{fig:1dtarget}.
|
visualized in figure \ref{fig:1dtarget}.
|
||||||
|
|
||||||
begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[width=0.7\textwidth]{img/1dtarget.png}
|
\includegraphics[width=0.7\textwidth]{img/1dtarget.png}
|
||||||
\end{center}
|
\end{center}
|
||||||
@ -649,9 +646,9 @@ correct.
|
|||||||
Regarding the *fitness--function* $f(\vec{p})$, we use the very simple approach
|
Regarding the *fitness--function* $f(\vec{p})$, we use the very simple approach
|
||||||
of calculating the squared distances for each corresponding vertex
|
of calculating the squared distances for each corresponding vertex
|
||||||
$$
|
$$
|
||||||
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - s_i\|_2^2 = \|\vec{Up} - \vec{s}\|^2 \rightarrow \min
|
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - t_i\|_2^2 = \|\vec{Up} - \vec{t}\|^2 \rightarrow \min
|
||||||
$$
|
$$
|
||||||
where $s_i$ are the respective solution--vertices to the parametrized
|
where $t_i$ are the respective target--vertices to the parametrized
|
||||||
source--vertices^[The parametrization is encoded in $\vec{U}$ and the initial
|
source--vertices^[The parametrization is encoded in $\vec{U}$ and the initial
|
||||||
position of the control points. See \ref{sec:ffd:adapt}] with the current
|
position of the control points. See \ref{sec:ffd:adapt}] with the current
|
||||||
deformation--parameters $\vec{p} = (p_1,\dots, p_m)$. We can do this
|
deformation--parameters $\vec{p} = (p_1,\dots, p_m)$. We can do this
|
||||||
@ -659,7 +656,7 @@ one--to--one--correspondence because we have exactly the same number of
|
|||||||
source and target-vertices do to our setup of just flattening the object.
|
source and target-vertices do to our setup of just flattening the object.
|
||||||
|
|
||||||
This formula is also the least--squares approximation error for which we
|
This formula is also the least--squares approximation error for which we
|
||||||
can compute the analytic solution $\vec{p^{*}} = \vec{U^+}\vec{s}$, yielding us
|
can compute the analytic solution $\vec{p^{*}} = \vec{U^+}\vec{t}$, yielding us
|
||||||
the correct gradient in which the evolutionary optimizer should move.
|
the correct gradient in which the evolutionary optimizer should move.
|
||||||
|
|
||||||
## Procedure: 1D Function Approximation
|
## Procedure: 1D Function Approximation
|
||||||
@ -679,19 +676,26 @@ $\vec{g}_\textrm{c} = \vec{p^{*}}$ the calculated correct gradient.
|
|||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[width=\textwidth]{img/example1d_grid.png}
|
\includegraphics[width=\textwidth]{img/example1d_grid.png}
|
||||||
\end{center}
|
\end{center}
|
||||||
\caption{\newline Left: A regular $7 \times 4$--grid\newline Right: The same grid after a
|
\caption[Example of a 1D--grid]{\newline Left: A regular $7 \times 4$--grid\newline Right: The same grid after a
|
||||||
random distortion to generate a testcase.}
|
random distortion to generate a testcase.}
|
||||||
\label{fig:example1d_grid}
|
\label{fig:example1d_grid}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
We then set up a regular 2--dimensional grid around the object with the desired
|
We then set up a regular 2--dimensional grid around the object with the desired
|
||||||
grid resolutions. To generate a testcase we then move the grid--vertices
|
grid resolutions. To generate a testcase we then move the grid--vertices
|
||||||
randomly inside the x--y--plane. As we do not want to generate hard to solve
|
randomly inside the x--y--plane. As self-intersecting grids get tricky to solve
|
||||||
grids we avoid the generation of self--intersecting grids.\improvement{besser
|
with our implemented newtons--method we avoid the generation of such
|
||||||
formulieren} To achieve that we select a uniform distributed number
|
self--intersecting grids for our testcases.
|
||||||
$r \in [-0.25,0.25]$ per dimension and shrink the distance to the neighbours
|
|
||||||
(the smaller neighbour for $r < 0$, the larger for $r > 0$) by the factor
|
This is a reasonable thing to do, as self-intersecting grids violate our desired
|
||||||
$r$^[Note: On the Edges this displacement is only applied outwards by flipping the sign of $r$, if appropriate.].
|
property of locality, as the then farther away control--point has more influence
|
||||||
|
over some vertices as the next-closer.
|
||||||
|
|
||||||
|
To achieve that we select a uniform distributed number $r \in [-0.25,0.25]$ per
|
||||||
|
dimension and shrink the distance to the neighbours (the smaller neighbour for
|
||||||
|
$r < 0$, the larger for $r > 0$) by the factor $r$^[Note: On the Edges this
|
||||||
|
displacement is only applied outwards by flipping the sign of $r$, if
|
||||||
|
appropriate.].
|
||||||
|
|
||||||
An Example of such a testcase can be seen for a $7 \times 4$--grid in figure
|
An Example of such a testcase can be seen for a $7 \times 4$--grid in figure
|
||||||
\ref{fig:example1d_grid}.
|
\ref{fig:example1d_grid}.
|
||||||
@ -729,7 +733,7 @@ f(\vec{P}) = \frac{1}{n} \underbrace{\sum_{i=1}^n \|\vec{c_T(s_i)} -
|
|||||||
\vec{s_i}\|_2^2}_{\textrm{source-to-target--distance}}
|
\vec{s_i}\|_2^2}_{\textrm{source-to-target--distance}}
|
||||||
+ \frac{1}{m} \underbrace{\sum_{i=1}^m \|\vec{c_S(t_i)} -
|
+ \frac{1}{m} \underbrace{\sum_{i=1}^m \|\vec{c_S(t_i)} -
|
||||||
\vec{t_i}\|_2^2}_{\textrm{target-to-source--distance}}
|
\vec{t_i}\|_2^2}_{\textrm{target-to-source--distance}}
|
||||||
+ \lambda \cdot \textrm{regularization}
|
+ \lambda \cdot \textrm{regularization}(\vec{P})
|
||||||
$$
|
$$
|
||||||
where $\vec{c_T(s_i)}$ denotes the target--vertex that is corresponding to the
|
where $\vec{c_T(s_i)}$ denotes the target--vertex that is corresponding to the
|
||||||
source--vertex $\vec{s_i}$ and $\vec{c_S(t_i)}$ denotes the source--vertex that
|
source--vertex $\vec{s_i}$ and $\vec{c_S(t_i)}$ denotes the source--vertex that
|
||||||
@ -742,14 +746,21 @@ $n \times m$--matrix of calculated coefficients for the \ac{FFD} --- analog to
|
|||||||
the 1D case --- and finally $\vec{P}$ being the $m \times 3$--matrix of the
|
the 1D case --- and finally $\vec{P}$ being the $m \times 3$--matrix of the
|
||||||
control--grid defining the whole deformation.
|
control--grid defining the whole deformation.
|
||||||
|
|
||||||
As regularization-term we introduce a weighted decaying
|
As regularization-term we add a weighted Laplacian of the deformation that has
|
||||||
laplace--coefficient\unsure{heisst der so?}
|
been used before by Aschenbach et al.\cite[Section 3.2]{aschenbach2015} on
|
||||||
that is known to speed up the optimization--process\improvement{cite [34] aus
|
similar models and was shown to lead to a more precise fit. The Laplacian
|
||||||
ref{anrichterEvol}} and simulates a material that is very stiff in the
|
$$
|
||||||
beginning --- to do a coarse deformation --- and gets easier to deform over
|
\textrm{regularization}(\vec{P}) = \frac{1}{\sum_i A_i} \sum_{i=1}^n A_i \cdot \left( \sum_{\vec{s_j} \in \mathcal{N}(\vec{s_i})} w_j \cdot \|\Delta \vec{s_j} - \Delta \vec{\overline{s}_j}\|^2 \right)
|
||||||
time.
|
$$
|
||||||
|
is determined by the cotangent weighted displacement $w_j$ of the to $s_i$
|
||||||
|
connected vertices $\mathcal{N}(s_i)$ and $A_i$ is the Voronoi--area of the corresponding vertex
|
||||||
|
$\vec{s_i}$. We leave out the $\vec{R}_i$--term from the original paper as our
|
||||||
|
deformation is merely linear.
|
||||||
|
|
||||||
\improvement[inline]{mehr zu regularisierung, Formel etc.}
|
This regularization--weight gives us a measure of stiffness for the material
|
||||||
|
that we will influence via the $\lambda$--coefficient to start out with a stiff
|
||||||
|
material that will get more flexible per iteration.
|
||||||
|
\unsure[inline]{Andreas: hast du nen cite, wo gezeigt ist, dass das so sinnvoll ist?}
|
||||||
|
|
||||||
## Procedure: 3D Function Approximation
|
## Procedure: 3D Function Approximation
|
||||||
|
|
||||||
@ -766,7 +777,31 @@ calculate the next incremental solution $\vec{P^{*}} = \vec{U^+}\vec{T}$ with
|
|||||||
the updated correspondences to get our next target--error.
|
the updated correspondences to get our next target--error.
|
||||||
We repeat this process as long as the target--error keeps decreasing.
|
We repeat this process as long as the target--error keeps decreasing.
|
||||||
|
|
||||||
\improvement[inline]{grid-setup}
|
\begin{figure}[ht]
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=\textwidth]{img/example3d_grid.png}
|
||||||
|
\end{center}
|
||||||
|
\caption[Example of a 3D--grid]{\newline Left: The 3D--setup with a $4\times
|
||||||
|
4\times 4$--grid.\newline Right: The same grid after added noise to the
|
||||||
|
control--points.}
|
||||||
|
\label{fig:setup3d}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The grid we use for our experiments is just very coarse due to computational
|
||||||
|
limitations. We are not interested in a good reconstruction, but an estimate if
|
||||||
|
the mentioned evolvability criteria are good.
|
||||||
|
|
||||||
|
In figure \ref{fig:setup3d} we show an example setup of the scene with a
|
||||||
|
$4\times 4\times 4$--grid. Identical to the 1--dimensional scenario before, we create a
|
||||||
|
regular grid and move the control-points uniformly random between their
|
||||||
|
neighbours, but in three instead of two dimensions^[Again, we flip the signs for
|
||||||
|
the edges, if necessary to have the object still in the convex hull.].
|
||||||
|
|
||||||
|
As is clearly visible from figure \ref{fig:3dtarget}, the target--model has many
|
||||||
|
vertices in the facial area, at the ears and in the neck--region. Therefore we
|
||||||
|
chose to increase the grid-resolutions for our tests in two different dimensions
|
||||||
|
and see how well the criteria predict a suboptimal placement of these
|
||||||
|
control-points.
|
||||||
|
|
||||||
# Evaluation of Scenarios
|
# Evaluation of Scenarios
|
||||||
\label{sec:res}
|
\label{sec:res}
|
||||||
@ -817,3 +852,6 @@ We repeat this process as long as the target--error keeps decreasing.
|
|||||||
\label{sec:dis}
|
\label{sec:dis}
|
||||||
|
|
||||||
HAHA .. als ob -.-
|
HAHA .. als ob -.-
|
||||||
|
|
||||||
|
\improvement[inline]{Bibliotheksverzeichnis links anpassen. DOI überschreibt
|
||||||
|
Direktlinks des Autors.}
|
||||||
|
BIN
arbeit/ma.pdf
BIN
arbeit/ma.pdf
Binary file not shown.
103
arbeit/ma.tex
103
arbeit/ma.tex
@ -773,11 +773,11 @@ circle.
|
|||||||
\unsure[inline]{erwähnen, dass man aus $\vec{D}$ einfach die Null--Spalten
|
\unsure[inline]{erwähnen, dass man aus $\vec{D}$ einfach die Null--Spalten
|
||||||
entfernen kann?}
|
entfernen kann?}
|
||||||
|
|
||||||
For our tests we chose different uniformly sized grids and added
|
For our tests we chose different uniformly sized grids and added noise
|
||||||
gaussian noise onto each control-point\footnote{For the special case of
|
onto each control-point\footnote{For the special case of the outer layer
|
||||||
the outer layer we only applied noise away from the object, so the
|
we only applied noise away from the object, so the object is still
|
||||||
object is still confined in the convex hull of the control--points.}
|
confined in the convex hull of the control--points.} to simulate
|
||||||
to simulate different starting-conditions.
|
different starting-conditions.
|
||||||
|
|
||||||
\unsure[inline]{verweis auf DM--FFD?}
|
\unsure[inline]{verweis auf DM--FFD?}
|
||||||
|
|
||||||
@ -786,8 +786,6 @@ using
|
|||||||
\acf{FFD}}{Scenarios for testing evolvability criteria using }}\label{scenarios-for-testing-evolvability-criteria-using}
|
\acf{FFD}}{Scenarios for testing evolvability criteria using }}\label{scenarios-for-testing-evolvability-criteria-using}
|
||||||
|
|
||||||
\label{sec:eval}
|
\label{sec:eval}
|
||||||
\improvement[inline]{für 1d und 3d entweder konsistent source/target oder
|
|
||||||
anders. Weil sonst in 1d $\vec{s}$ das Ziel, in 3d $\vec{t}$ das Ziel.}
|
|
||||||
|
|
||||||
In our experiments we use the same two testing--scenarios, that were
|
In our experiments we use the same two testing--scenarios, that were
|
||||||
also used by \cite{anrichterEvol}. The first scenario deforms a plane
|
also used by \cite{anrichterEvol}. The first scenario deforms a plane
|
||||||
@ -808,7 +806,7 @@ al.\cite{giannelli2012thb}, which is also used by Richter et
|
|||||||
al.\cite{anrichterEvol} using the same discretization to
|
al.\cite{anrichterEvol} using the same discretization to
|
||||||
\(150 \times 150\) points for a total of \(n = 22\,500\) vertices. The
|
\(150 \times 150\) points for a total of \(n = 22\,500\) vertices. The
|
||||||
shape is given by the following definition \[
|
shape is given by the following definition \[
|
||||||
s(x,y) =
|
t(x,y) =
|
||||||
\begin{cases}
|
\begin{cases}
|
||||||
0.5 \cos(4\pi \cdot q^{0.5}) + 0.5 & q(x,y) < \frac{1}{16},\\
|
0.5 \cos(4\pi \cdot q^{0.5}) + 0.5 & q(x,y) < \frac{1}{16},\\
|
||||||
2(y-x) & 0 < y-x < 0.5,\\
|
2(y-x) & 0 < y-x < 0.5,\\
|
||||||
@ -818,15 +816,14 @@ s(x,y) =
|
|||||||
\(q(x,y)=(x-1.5)^2 + (y-0.5)^2\), which we have visualized in figure
|
\(q(x,y)=(x-1.5)^2 + (y-0.5)^2\), which we have visualized in figure
|
||||||
\ref{fig:1dtarget}.
|
\ref{fig:1dtarget}.
|
||||||
|
|
||||||
begin\{figure\}{[}ht{]}
|
\begin{figure}[ht]
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[width=0.7\textwidth]{img/1dtarget.png}
|
\includegraphics[width=0.7\textwidth]{img/1dtarget.png}
|
||||||
\end{center}\caption{The target--shape for our 1--dimensional optimization--scenario
|
\end{center}
|
||||||
|
\caption{The target--shape for our 1--dimensional optimization--scenario
|
||||||
including a wireframe--overlay of the vertices.}
|
including a wireframe--overlay of the vertices.}
|
||||||
\label{fig:1dtarget}
|
\label{fig:1dtarget}
|
||||||
|
\end{figure}
|
||||||
\textbackslash{}end\{figure\}
|
|
||||||
|
|
||||||
As the starting-plane we used the same shape, but set all
|
As the starting-plane we used the same shape, but set all
|
||||||
\(z\)--coordinates to \(0\), yielding a flat plane, which is partially
|
\(z\)--coordinates to \(0\), yielding a flat plane, which is partially
|
||||||
@ -835,10 +832,10 @@ already correct.
|
|||||||
Regarding the \emph{fitness--function} \(f(\vec{p})\), we use the very
|
Regarding the \emph{fitness--function} \(f(\vec{p})\), we use the very
|
||||||
simple approach of calculating the squared distances for each
|
simple approach of calculating the squared distances for each
|
||||||
corresponding vertex \[
|
corresponding vertex \[
|
||||||
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - s_i\|_2^2 = \|\vec{Up} - \vec{s}\|^2 \rightarrow \min
|
\textrm{f(\vec{p})} = \sum_{i=1}^{n} \|(\vec{Up})_i - t_i\|_2^2 = \|\vec{Up} - \vec{t}\|^2 \rightarrow \min
|
||||||
\] where \(s_i\) are the respective solution--vertices to the
|
\] where \(t_i\) are the respective target--vertices to the parametrized
|
||||||
parametrized source--vertices\footnote{The parametrization is encoded in
|
source--vertices\footnote{The parametrization is encoded in \(\vec{U}\)
|
||||||
\(\vec{U}\) and the initial position of the control points. See
|
and the initial position of the control points. See
|
||||||
\ref{sec:ffd:adapt}} with the current deformation--parameters
|
\ref{sec:ffd:adapt}} with the current deformation--parameters
|
||||||
\(\vec{p} = (p_1,\dots, p_m)\). We can do this
|
\(\vec{p} = (p_1,\dots, p_m)\). We can do this
|
||||||
one--to--one--correspondence because we have exactly the same number of
|
one--to--one--correspondence because we have exactly the same number of
|
||||||
@ -846,7 +843,7 @@ source and target-vertices do to our setup of just flattening the
|
|||||||
object.
|
object.
|
||||||
|
|
||||||
This formula is also the least--squares approximation error for which we
|
This formula is also the least--squares approximation error for which we
|
||||||
can compute the analytic solution \(\vec{p^{*}} = \vec{U^+}\vec{s}\),
|
can compute the analytic solution \(\vec{p^{*}} = \vec{U^+}\vec{t}\),
|
||||||
yielding us the correct gradient in which the evolutionary optimizer
|
yielding us the correct gradient in which the evolutionary optimizer
|
||||||
should move.
|
should move.
|
||||||
|
|
||||||
@ -868,17 +865,22 @@ correct gradient.
|
|||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[width=\textwidth]{img/example1d_grid.png}
|
\includegraphics[width=\textwidth]{img/example1d_grid.png}
|
||||||
\end{center}
|
\end{center}
|
||||||
\caption{\newline Left: A regular $7 \times 4$--grid\newline Right: The same grid after a
|
\caption[Example of a 1D--grid]{\newline Left: A regular $7 \times 4$--grid\newline Right: The same grid after a
|
||||||
random distortion to generate a testcase.}
|
random distortion to generate a testcase.}
|
||||||
\label{fig:example1d_grid}
|
\label{fig:example1d_grid}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
We then set up a regular 2--dimensional grid around the object with the
|
We then set up a regular 2--dimensional grid around the object with the
|
||||||
desired grid resolutions. To generate a testcase we then move the
|
desired grid resolutions. To generate a testcase we then move the
|
||||||
grid--vertices randomly inside the x--y--plane. As we do not want to
|
grid--vertices randomly inside the x--y--plane. As self-intersecting
|
||||||
generate hard to solve grids we avoid the generation of
|
grids get tricky to solve with our implemented newtons--method we avoid
|
||||||
self--intersecting grids.\improvement{besser
|
the generation of such self--intersecting grids for our testcases.
|
||||||
formulieren} To achieve that we select a uniform distributed number
|
|
||||||
|
This is a reasonable thing to do, as self-intersecting grids violate our
|
||||||
|
desired property of locality, as the then farther away control--point
|
||||||
|
has more influence over some vertices as the next-closer.
|
||||||
|
|
||||||
|
To achieve that we select a uniform distributed number
|
||||||
\(r \in [-0.25,0.25]\) per dimension and shrink the distance to the
|
\(r \in [-0.25,0.25]\) per dimension and shrink the distance to the
|
||||||
neighbours (the smaller neighbour for \(r < 0\), the larger for
|
neighbours (the smaller neighbour for \(r < 0\), the larger for
|
||||||
\(r > 0\)) by the factor \(r\)\footnote{Note: On the Edges this
|
\(r > 0\)) by the factor \(r\)\footnote{Note: On the Edges this
|
||||||
@ -922,7 +924,7 @@ f(\vec{P}) = \frac{1}{n} \underbrace{\sum_{i=1}^n \|\vec{c_T(s_i)} -
|
|||||||
\vec{s_i}\|_2^2}_{\textrm{source-to-target--distance}}
|
\vec{s_i}\|_2^2}_{\textrm{source-to-target--distance}}
|
||||||
+ \frac{1}{m} \underbrace{\sum_{i=1}^m \|\vec{c_S(t_i)} -
|
+ \frac{1}{m} \underbrace{\sum_{i=1}^m \|\vec{c_S(t_i)} -
|
||||||
\vec{t_i}\|_2^2}_{\textrm{target-to-source--distance}}
|
\vec{t_i}\|_2^2}_{\textrm{target-to-source--distance}}
|
||||||
+ \lambda \cdot \textrm{regularization}
|
+ \lambda \cdot \textrm{regularization}(\vec{P})
|
||||||
\] where \(\vec{c_T(s_i)}\) denotes the target--vertex that is
|
\] where \(\vec{c_T(s_i)}\) denotes the target--vertex that is
|
||||||
corresponding to the source--vertex \(\vec{s_i}\) and \(\vec{c_S(t_i)}\)
|
corresponding to the source--vertex \(\vec{s_i}\) and \(\vec{c_S(t_i)}\)
|
||||||
denotes the source--vertex that corresponds to the target--vertex
|
denotes the source--vertex that corresponds to the target--vertex
|
||||||
@ -936,14 +938,22 @@ calculated coefficients for the \ac{FFD} --- analog to the 1D case ---
|
|||||||
and finally \(\vec{P}\) being the \(m \times 3\)--matrix of the
|
and finally \(\vec{P}\) being the \(m \times 3\)--matrix of the
|
||||||
control--grid defining the whole deformation.
|
control--grid defining the whole deformation.
|
||||||
|
|
||||||
As regularization-term we introduce a weighted decaying
|
As regularization-term we add a weighted Laplacian of the deformation
|
||||||
laplace--coefficient\unsure{heisst der so?} that is known to speed up
|
that has been used before by Aschenbach et
|
||||||
the optimization--process\improvement{cite [34] aus
|
al.\cite[Section 3.2]{aschenbach2015} on similar models and was shown to
|
||||||
ref{anrichterEvol}} and simulates a material that is very stiff in the
|
lead to a more precise fit. The Laplacian \[
|
||||||
beginning --- to do a coarse deformation --- and gets easier to deform
|
\textrm{regularization}(\vec{P}) = \frac{1}{\sum_i A_i} \sum_{i=1}^n A_i \cdot \left( \sum_{\vec{s_j} \in \mathcal{N}(\vec{s_i})} w_j \cdot \|\Delta \vec{s_j} - \Delta \vec{\overline{s}_j}\|^2 \right)
|
||||||
over time.
|
\] is determined by the cotangent weighted displacement \(w_j\) of the
|
||||||
|
to \(s_i\) connected vertices \(\mathcal{N}(s_i)\) and \(A_i\) is the
|
||||||
|
Voronoi--area of the corresponding vertex \(\vec{s_i}\). We leave out
|
||||||
|
the \(\vec{R}_i\)--term from the original paper as our deformation is
|
||||||
|
merely linear.
|
||||||
|
|
||||||
\improvement[inline]{mehr zu regularisierung, Formel etc.}
|
This regularization--weight gives us a measure of stiffness for the
|
||||||
|
material that we will influence via the \(\lambda\)--coefficient to
|
||||||
|
start out with a stiff material that will get more flexible per
|
||||||
|
iteration.
|
||||||
|
\unsure[inline]{Andreas: hast du nen cite, wo gezeigt ist, dass das so sinnvoll ist?}
|
||||||
|
|
||||||
\section{Procedure: 3D Function
|
\section{Procedure: 3D Function
|
||||||
Approximation}\label{procedure-3d-function-approximation}
|
Approximation}\label{procedure-3d-function-approximation}
|
||||||
@ -962,7 +972,33 @@ incremental solution \(\vec{P^{*}} = \vec{U^+}\vec{T}\) with the updated
|
|||||||
correspondences to get our next target--error. We repeat this process as
|
correspondences to get our next target--error. We repeat this process as
|
||||||
long as the target--error keeps decreasing.
|
long as the target--error keeps decreasing.
|
||||||
|
|
||||||
\improvement[inline]{grid-setup}
|
\begin{figure}[ht]
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=\textwidth]{img/example3d_grid.png}
|
||||||
|
\end{center}
|
||||||
|
\caption[Example of a 3D--grid]{\newline Left: The 3D--setup with a $4\times
|
||||||
|
4\times 4$--grid.\newline Right: The same grid after added noise to the
|
||||||
|
control--points.}
|
||||||
|
\label{fig:setup3d}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The grid we use for our experiments is just very coarse due to
|
||||||
|
computational limitations. We are not interested in a good
|
||||||
|
reconstruction, but an estimate if the mentioned evolvability criteria
|
||||||
|
are good.
|
||||||
|
|
||||||
|
In figure \ref{fig:setup3d} we show an example setup of the scene with a
|
||||||
|
\(4\times 4\times 4\)--grid. Identical to the 1--dimensional scenario
|
||||||
|
before, we create a regular grid and move the control-points uniformly
|
||||||
|
random between their neighbours, but in three instead of two
|
||||||
|
dimensions\footnote{Again, we flip the signs for the edges, if necessary
|
||||||
|
to have the object still in the convex hull.}.
|
||||||
|
|
||||||
|
As is clearly visible from figure \ref{fig:3dtarget}, the target--model
|
||||||
|
has many vertices in the facial area, at the ears and in the
|
||||||
|
neck--region. Therefore we chose to increase the grid-resolutions for
|
||||||
|
our tests in two different dimensions and see how well the criteria
|
||||||
|
predict a suboptimal placement of these control-points.
|
||||||
|
|
||||||
\chapter{Evaluation of Scenarios}\label{evaluation-of-scenarios}
|
\chapter{Evaluation of Scenarios}\label{evaluation-of-scenarios}
|
||||||
|
|
||||||
@ -1012,6 +1048,9 @@ Approximation}\label{results-of-3d-function-approximation}
|
|||||||
|
|
||||||
HAHA .. als ob -.-
|
HAHA .. als ob -.-
|
||||||
|
|
||||||
|
\improvement[inline]{Bibliotheksverzeichnis links anpassen. DOI überschreibt
|
||||||
|
Direktlinks des Autors.}
|
||||||
|
|
||||||
% \backmatter
|
% \backmatter
|
||||||
\cleardoublepage
|
\cleardoublepage
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user