masterarbeit/arbeit/ma.tex

403 lines
13 KiB
TeX
Raw Blame History

% bibtotoc[numbered] : Literaturv. wird in Inhaltsv. aufgenommen
% abstracton : Abstract mit Ueberschrift
\documentclass[
a4paper, % default
11pt, % default = 11pt
BCOR6mm, % Bindungskorrektur bei Klebebindung 6mm, bei Lochen BCOR8.25mm
twoside, % default, 2seitig
titlepage,
% pagesize=auto
% openany, % Kapitel koennen auch auf geraden Seiten starten
% draft % schneller compillieren, Bild-dummy
% appendixprefix % Anhang mit Bezeichner
]{scrbook}
%%%%%%%%%%%%%%% Literaturverzeichnisstil %%%%%%%%%%%%%%%
% achtung, auch \bibstyle, unten, anpassen!
% \usepackage[square]{natbib} % fuer bibstyle natdin/ see ../natbib.pdf
%%%%%%%%%%%%%%% Packages %%%%%%%%%%%%%%%
\input{settings/packages}
\makeindex
%%%%%%%%%%%%%%% Graphics %%%%%%%%%%%%%%%
\graphicspath{{pics/}}
%%%%%%%%%%%%%%% Globale Einstellungen %%%%%%%%%%%%%%%
\input{settings/commands}
\input{settings/environments}
%\setlength{\parindent}{0pt} % kein einzug bei absaetzen
%\setlength{\lineskip}{1ex plus0.5ex minus0.5ex} % dafr abstand zwischen abs<62>zen (funktioniert noch nicht)
% \renewcommand{\familydefault}{\sfdefault}
%%%%%%%%%%%%%%% Header - Footer %%%%%%%%%%%%%%%
% ### Fr 2 Seitig (option twopage):
\usepackage{fancyhdr}%http://www.tug.org/tex-archive/info/german/fancyhdr
\pagestyle{fancy} % must be called before the following renewcommands !!!
\fancyhead{} % Alte Definition loeschen
\fancyfoot{} % dito
\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter{}: #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection{}~~#1}}
% % um das hard codierte makeuppercase zu verhindern
\fancyhead[EL]{\textrm{\nouppercase\leftmark}}% Even=linke Seiten und dort links, also aussn das \leftmark
\fancyhead[OR]{\textrm{\nouppercase\rightmark}}% Odd=rechte Seiten und dort rechts, also aussen das \rightmark
\fancyfoot[RO,LE]{\thepage} % Seitenzahl : rechts ungerade, links gerade
% ### fr 1 seitig
%\usepackage{fancyhdr} %
%\lhead{\textsf{\noupercase\leftmark}}
%\chead{}
%\rhead{\textsf{\nouppercase\rightmark}}
%\lfoot{}
%\cfoot{\textsf{\thepage}}
%\rfoot{}
\setkomafont{sectioning}{\rmfamily\bfseries}
\setcounter{tocdepth}{3}
%\setcounter{secnumdepth}{3}
% \input{settings/hyphenation} %% Manchmal bricht latex nicht richtig um. hier trennregeln rein.
% \includeonly{%
% % files/0_titlepage.tex
% % files/1_0_introduction,%
% % files/2_0_knownDCJ,%
% % files/3_0_DCJIndels,%
% % files/4_0_DCJIndels_1comps,%
% files/5_0_DCJIndels_2comps,%
% % files/6_0_implementation,%
% % files/7_0_evaluation%
% % ,files/8_0_conclusion%
% }
%%%%%%%%%%%%%%% PANDOC-nedded defs %%%%%%%%%%
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
%disable "Redefining ngerman shorthand"-Message
% \makeatletter
% \patchcmd{\pdfstringdef}
% {\csname HyPsd@babel@}
% {\let\bbl@info\@gobble\csname HyPsd@babel@}
% {}{}
% \makeatother
%%%%%%%%%%%%%%% Hauptdokument %%%%%%%%%%%%%%%
\begin{document}
% ###### Autoref definitions (hyperref package)#####
\def\subtableautorefname{Table}
\def\algorithmautorefname{Algorithm}
\def\chapterautorefname{Chapter}
\def\sectionautorefname{Section}
\def\definitionautorefname{Definition}
\def\exampleautorefname{Example}
\def\observationautorefname{Observation}
\def\propositionautorefname{Proposition}
\def\lemmaautorefname{Lemma}
% in diesem Dokument nicht verwendet:
% \def\subsectionautorefname{Subsection}
% \def\Subsubsectionautorefname{Subsubsection}
% \def\subfigureautorefname{Figure}
% \def\claimautorefname{Claim}
%%%%%%%%%%%%%%% Deckblatt %%%%%%%%%%%%%%%
\extratitle{}
\input{files/titlepage}
%\input{files/titlepage.pdf} % Rueckseite leer
% \input{files/0_deckblatt/title}
\pagestyle{empty} % Rueckseite leer
%
%%%%%%%%%%%%%%% Verzeichnisse %%%%%%%%%%%%%%%
\frontmatter % Abstrakte Gliederungsebene: Anfang des Buches
\tableofcontents % Rueckseite leer
%\lstlistoflistings % fuer listingsverzeichnis mit package listings
%%%%%%%%%%%%%%% Hauptteil %%%%%%%%%%%%%%%
% Insgesamt ca. 60-100 Seiten Davon mindesten 50% Eigene Arbeit
\mainmatter %Abstrakte Gliederungsebene: Hauptteil des Buches
\pagestyle{fancy}
\pagenumbering{arabic}
\chapter*{How to read this Thesis}
As a guide through the nomenclature used in the formulas we prepend this
chapter.
Unless otherwise noted the following holds:
\begin{itemize}
\tightlist
\item
lowercase letters \(x,y,z\)\\
refer to real variables and represent a point in 3D-Space.
\item
lowercase letters \(u,v,w\)\\
refer to real variables between \(0\) and \(1\) used as coefficients
in a 3D B-Spline grid.
\item
other lowercase letters\\
refer to other scalar (real) variables.
\item
lowercase \textbf{bold} letters (e.g. \(\vec{x},\vec{y}\))\\
refer to 3D coordinates
\item
uppercase \textbf{BOLD} letters (e.g. \(\vec{D}, \vec{M}\))\\
refer to Matrices
\end{itemize}
\chapter{Introduction}\label{introduction}
In this Master Thesis we try to extend a previously proposed concept of
predicting the evolvability of \acf{FFD} given a
Deformation-Matrix\cite{anrichterEvol}. In the original publication the
author used random sampled points weighted with \acf{RBF} to deform the
mesh and defined three different criteria that can be calculated prior
to using an evolutional optimisation algorithm to asses the quality and
potential of such optimisation.
We will replicate the same setup on the same meshes but use \acf{FFD}
instead of \acf{RBF} to create a deformation and evaluate if the
evolution-criteria still work as a predictor given the different
deformation scheme.
\section{\texorpdfstring{What is \acf{FFD}?}{What is ?}}\label{what-is}
First of all we have to establish how a \ac{FFD} works and why this is a
good tool for deforming meshes in the first place. For simplicity we
only summarize the 1D-case from \cite{spitzmuller1996bezier} here and go
into the extension to the 3D case in chapter \ref{3dffd}.
Given an arbitrary number of points \(p_i\) alongside a line, we map a
scalar value \(\tau_i \in [0,1[\) to each point with
\(\tau_i < \tau_{i+1} \forall i\). Given a degree of the target
polynomial \(d\) we define the curve \(N_{i,d,\tau_i}(u)\) as follows:
\begin{equation} \label{eqn:ffd1d1}
N_{i,0,\tau}(u) = \begin{cases} 1, & u \in [\tau_i, \tau_{i+1}[ \\ 0, & \mbox{otherwise} \end{cases}
\end{equation}
and
\begin{equation} \label{eqn:ffd1d2}
N_{i,d,\tau}(u) = \frac{u-\tau_i}{\tau_{i+d}} N_{i,d-1,\tau}(u) + \frac{\tau_{i+d+1} - u}{\tau_{i+d+1}-\tau_{i+1}} N_{i+1,d-1,\tau}(u)
\end{equation}
If we now multiply every \(p_i\) with the corresponding
\(N_{i,d,\tau_i}(u)\) we get the contribution of each point \(p_i\) to
the final curve-point parameterized only by \(u \in [0,1[\). As can be
seen from \eqref{eqn:ffd1d2} we only access points \([i..i+d]\) for any
given \(i\)\footnote{one more for each recursive step.}, which gives us,
in combination with choosing \(p_i\) and \(\tau_i\) in order, only a
local interference of \(d+1\) points.
We can even derive this equation straightforward for an arbitrary
\(N\)\footnote{\emph{Warning:} in the case of \(d=1\) the
recursion-formula yields a \(0\) denominator, but \(N\) is also \(0\).
The right solution for this case is a derivative of \(0\)}:
\[\frac{\partial}{\partial u} N_{i,d,r}(u) = \frac{d}{\tau_{i+d} - \tau_i} N_{i,d-1,\tau}(u) - \frac{d}{\tau_{i+d+1} - \tau_{i+1}} N_{i+1,d-1,\tau}(u)\]
For a B-Spline \[s(u) = \sum_{i} N_{i,d,\tau_i}(u) p_i\] these
derivations yield \(\frac{\partial^d}{\partial u} s(u) = 0\).
Another interesting property of these recursive polynomials is that they
are continuous (given \(d \ge 1\)) as every \(p_i\) gets blended in
linearly between \(\tau_i\) and \(\tau_{i+d}\) and out linearly between
\(\tau_{i+1}\) and \(\tau_{i+d+1}\) as can bee seen from the two
coefficients in every step of the recursion.
\subsection{\texorpdfstring{Why is \ac{FFD} a good deformation
function?}{Why is a good deformation function?}}\label{why-is-a-good-deformation-function}
The usage of \ac{FFD} as a tool for manipulating follows directly from
the properties of the polynomials and the correspondence to the control
points. Having only a few control points gives the user a nicer
high-level-interface, as she only needs to move these points and the
model follows in an intuitive manner. The deformation is smooth as the
underlying polygon is smooth as well and affects as many vertices of the
model as needed. Moreover the changes are always local so one risks not
any change that a user cannot immediately see.
But there are also disadvantages of this approach. The user loses the
ability to directly influence vertices and even seemingly simple tasks
as creating a plateau can be difficult to
achieve\cite[chapter~3.2]{hsu1991dmffd}\todo{cite [24] aus \ref{anrichterEvol}}.
This disadvantages led to the formulation of
\acf{DM-FFD}\cite[chapter~3.3]{hsu1991dmffd} in which the user directly
interacts with the surface-mesh. All interactions will be applied
proportionally to the control-points that make up the parametrization of
the interaction-point itself yielding a smooth deformation of the
surface \emph{at} the surface without seemingly arbitrary scattered
control-points. Moreover this increases the efficiency of an
evolutionary optimization\todo{cite [25] aus \ref{anrichterEvol}}, which
we will use later on.
But this approach also has downsides as can be seen in
\cite[figure~7]{hsu1991dmffd}\todo{figure hier einfügen?}, as the
tessellation of the invisible grid has a major impact on the deformation
itself.
All in all \ac{FFD} and \ac{DM-FFD} are still good ways to deform a
high-polygon mesh albeit the downsides.
\section{What is evaluational
optimization?}\label{what-is-evaluational-optimization}
\section{Wieso ist evo-Opt so cool?}\label{wieso-ist-evo-opt-so-cool}
\section{Evolvierbarkeitskriterien}\label{evolvierbarkeitskriterien}
\begin{itemize}
\tightlist
\item
Konditionszahl etc.
\end{itemize}
\chapter{Hauptteil}\label{hauptteil}
\section{Was ist FFD?}\label{was-ist-ffd}
\label{3dffd}
\begin{itemize}
\tightlist
\item
Definition
\item
Wieso Newton-Optimierung?
\item
Was folgt daraus?
\end{itemize}
\section{Szenarien vorstellen}\label{szenarien-vorstellen}
\subsection{1D}\label{d}
\subsubsection{Optimierungszenario}\label{optimierungszenario}
\begin{itemize}
\tightlist
\item
Ebene -\textgreater{} Template-Fit
\end{itemize}
\subsubsection{Matching in 1D}\label{matching-in-1d}
\begin{itemize}
\tightlist
\item
Trivial
\end{itemize}
\subsubsection{Besonderheiten der
Auswertung}\label{besonderheiten-der-auswertung}
\begin{itemize}
\tightlist
\item
Analytische Lösung einzig beste
\item
Ergebnis auch bei Rauschen konstant?
\item
normierter 1-Vektor auf den Gradienten addieren
\begin{itemize}
\tightlist
\item
Kegel entsteht
\end{itemize}
\end{itemize}
\subsection{3D}\label{d-1}
\subsubsection{Optimierungsszenario}\label{optimierungsszenario}
\begin{itemize}
\tightlist
\item
Ball zu Mario
\end{itemize}
\subsubsection{Matching in 3D}\label{matching-in-3d}
\begin{itemize}
\tightlist
\item
alternierende Optimierung
\end{itemize}
\subsubsection{Besonderheiten der
Optimierung}\label{besonderheiten-der-optimierung}
\begin{itemize}
\tightlist
\item
Analytische Lösung nur bis zur Optimierung der ersten Punkte gültig
\item
Kriterien trotzdem gut
\end{itemize}
\chapter{Evaluation}\label{evaluation}
\section{Spearman/Pearson-Metriken}\label{spearmanpearson-metriken}
\begin{itemize}
\tightlist
\item
Was ist das?
\item
Wieso sollte uns das interessieren?
\item
Wieso reicht Monotonie?
\item
Haben wir das gezeigt?
\item
Stastik, Bilder, blah!
\end{itemize}
\chapter{Schluss}\label{schluss}
HAHA .. als ob -.-
\backmatter
\cleardoublepage
\renewcommand\thesection{\Roman{section}}
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
\setcounter{section}{1} % reset section to 1 so its stars I, II, III,...
\chapter*{Appendix}
\addcontentsline{toc}{chapter}{\protect\numberline{}Appendix}
\pagenumbering{roman}
%%%%%%%%%%%%%%% Literaturverzeichnis %%%%%%%%%%%%%%%
\bibliographystyle{natdin} % \bibliographystyle{natdin}
\bibliography{bibma}
\addcontentsline{toc}{section}{\protect\numberline{\thesection}Bibliography} % Literaturverzeichnis in das Inhaltsverzeichnis aufnehmen
\addtocounter{section}{1}
\newpage
%%%%%%%%%%%%%%% Anhang %%%%%%%%%%%%%%%
% \clearpage %spaeter alles wieder rein
% % \input{files/appendix}
\input{settings/abkuerzungen}
\addcontentsline{toc}{section}{\protect\numberline{\thesection}Abbreviations}
\addtocounter{section}{1}
\newpage
\listofalgorithms
\addcontentsline{toc}{section}{\protect\numberline{\thesection}List of Algorithms}
\addtocounter{section}{1}
\newpage
\listoffigures
\listoftables
\listoftodos
\addcontentsline{toc}{section}{\protect\numberline{\thesection}TODOs}
\addtocounter{section}{1}
\newpage
% \printindex
%%%%%%%%%%%%%%% Erklaerung %%%%%%%%%%%%%%%
% *\input{settings/declaration}
\include{files/erklaerung}
\end{document}