Files
writeup/templates/baposter-template/examples/code/poster_landscape.tex

635 lines
30 KiB
TeX

\documentclass[landscape,a0paper,fontscale=0.292]{baposter}
\usepackage[vlined]{algorithm2e}
\usepackage{times}
\usepackage{calc}
\usepackage{url}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{relsize}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage[T1]{fontenc}
\usepackage{ae}
\graphicspath{{images/}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Some math symbols used in the text
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Format
\newcommand{\RotUP}[1]{\begin{sideways}#1\end{sideways}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Multicol Settings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setlength{\columnsep}{0.7em}
\setlength{\columnseprule}{0mm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Save space in lists. Use this after the opening of the list
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\compresslist}{%
\setlength{\itemsep}{1pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Formating
\newcommand{\Matrix}[1]{\begin{bmatrix} #1 \end{bmatrix}}
\newcommand{\Vector}[1]{\begin{pmatrix} #1 \end{pmatrix}}
\newcommand*{\norm}[1]{\mathopen\| #1 \mathclose\|}% use instead of $\|x\|$
\newcommand*{\abs}[1]{\mathopen| #1 \mathclose|}% use instead of $\|x\|$
\newcommand*{\normLR}[1]{\left\| #1 \right\|}% use instead of $\|x\|$
\newcommand*{\SET}[1] {\ensuremath{\mathcal{#1}}}
\newcommand*{\FUN}[1] {\ensuremath{\mathcal{#1}}}
\newcommand*{\MAT}[1] {\ensuremath{\boldsymbol{#1}}}
\newcommand*{\VEC}[1] {\ensuremath{\boldsymbol{#1}}}
\newcommand*{\CONST}[1]{\ensuremath{\mathit{#1}}}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\diag}{diag}
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator*{\vectorize}{vec}
\DeclareMathOperator*{\reshape}{reshape}
%-----------------------------------------------------------------------------
% Differentiation
\newcommand*{\Nabla}[1]{\nabla_{\!#1}}
\renewcommand*{\d}{\mathrm{d}}
\newcommand*{\dd}{\partial}
\newcommand*{\At}[2]{\ensuremath{\left.#1\right|_{#2}}}
\newcommand*{\AtZero}[1]{\At{#1}{\pp=\VEC 0}}
\newcommand*{\diffp}[2]{\ensuremath{\frac{\dd #1}{\dd #2}}}
\newcommand*{\diffpp}[3]{\ensuremath{\frac{\dd^2 #1}{\dd #2 \dd #3}}}
\newcommand*{\diffppp}[4]{\ensuremath{\frac{\dd^3 #1}{\dd #2 \dd #3 \dd #4}}}
\newcommand*{\difff}[2]{\ensuremath{\frac{\d #1}{\d #2}}}
\newcommand*{\diffff}[3]{\ensuremath{\frac{\d^2 #1}{\d #2 \d #3}}}
\newcommand*{\difffp}[3]{\ensuremath{\frac{\dd\d #1}{\d #2 \dd #3}}}
\newcommand*{\difffpp}[4]{\ensuremath{\frac{\dd^2\d #1}{\d #2 \dd #3 \dd #4}}}
\newcommand*{\diffpAtZero}[2]{\ensuremath{\AtZero{\diffp{#1}{#2}}}}
\newcommand*{\diffppAtZero}[3]{\ensuremath{\AtZero{\diffpp{#1}{#2}{#3}}}}
\newcommand*{\difffAt}[3]{\ensuremath{\At{\difff{#1}{#2}}{#3}}}
\newcommand*{\difffAtZero}[2]{\ensuremath{\AtZero{\difff{#1}{#2}}}}
\newcommand*{\difffpAtZero}[3]{\ensuremath{\AtZero{\difffp{#1}{#2}{#3}}}}
\newcommand*{\difffppAtZero}[4]{\ensuremath{\AtZero{\difffpp{#1}{#2}{#3}{#4}}}}
%-----------------------------------------------------------------------------
% Defined
% How should the defined operator look like (:= or ^= ==)
% (I want back my :=, it is so much better than ^= because (1) it has a
% direction and (2) everyone here uses it.)
%
% Use :=
%\newcommand*{\defined}{\ensuremath{\mathrel{\mathop{:}}=}}
%\newcommand*{\definedRight}{\ensuremath{=\mathrel{\mathop{:}}}}
% Use ^=
\newcommand*{\defined}{\ensuremath{\triangleq}}
\newcommand*{\definedRight}{\ensuremath{\triangleq}}
% Use = with three bars
%\newcommand*{\defined}{\ensuremath{?}}
%\newcommand*{\definedRight}{\ensuremath{?}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Symbols used in the paper
%-----------------------------------------------------------------------------
% The Methods
\newcommand*{\ICIA}{\emph{ICIA}}
\newcommand*{\CoDe}{\emph{CoDe}}
\newcommand*{\LinCoDe}{\emph{LinCoDe}}
\newcommand*{\CoNe}{\emph{CoNe}}
\newcommand*{\CoLiNe}{\emph{CoLiNe}}
\newcommand*{\LinCoLiNe}{\emph{LinCoLiNe}}
% inter eye distance
\newcommand*{\ied}{IED}
%-----------------------------------------------------------------------------
% Koerper
%%\newcommand*{\RR}{\mathbb{R}}
%\newcommand*{\RR}{{I\hspace{-3.5pt}R}}
%\newcommand*{\RR}{{\mathrm{I\hspace{-2.7pt}R}}}
\font\dsfnt=dsrom12
\DeclareSymbolFont{nark}{U}{dsrom}{m}{n}
\DeclareMathSymbol{\NN}{\dsfnt}{nark}{`N}
\DeclareMathSymbol{\RR}{\dsfnt}{nark}{`R}
\DeclareMathSymbol{\ZZ}{\dsfnt}{nark}{`Z}
%-----------------------------------------------------------------------------
% Domains
\newcommand*{\D}{\mathcal{D}}
\newcommand*{\I}{\mathcal{I}}
%-----------------------------------------------------------------------------
% Texture coordinates
\newcommand*{\rr}{\VEC{r}}
%-----------------------------------------------------------------------------
% Parameters
\newcommand*{\pt}{\VEC{\tau}}
\newcommand*{\pr}{\VEC{\rho}}
\newcommand*{\pp}{\VEC{p}}
\newcommand*{\qq}{\VEC{q}}
\newcommand*{\xx}{\VEC{x}}
\newcommand*{\deltaq}{\Delta \qq}
\newcommand*{\deltap}{\Delta \pp}
\newcommand*{\zz}{\VEC{z}}
\newcommand*{\pa}{\VEC{\alpha}}
\newcommand*{\qa}{\VEC{\alpha}}
\newcommand*{\pb}{\VEC{\beta}}
%-----------------------------------------------------------------------------
% Optimal appearance parameters
\newcommand*{\pbh}[1]{\ensuremath{\hat{\pb}({#1})}}
%-----------------------------------------------------------------------------
% Warp basis
\newcommand*{\M}[1]{\ensuremath{M({#1})}}
\newcommand*{\LL}[1]{\ensuremath{L({#1})}}
%-----------------------------------------------------------------------------
% Matrices of the texture model
\newcommand*{\AM}[1]{\ensuremath{\Lambda(#1)}} % Lambda(beta)
\newcommand*{\AMr}[2]{\ensuremath{\Lambda(#1; #2)}} % Lambda(r, beta)
\newcommand*{\As}{A} % Continuous Basis symbol
\newcommand*{\afs}{a} % Continuous mean symbol
\newcommand*{\A}[1]{\As(#1)} % Continuous Basis
\newcommand*{\af}[1]{\afs(#1)} % Continuous mean
%-----------------------------------------------------------------------------
% Matrices of the shape model
\newcommand*{\MU}{\VEC{\mu}}
\newcommand*{\MM}{\MAT{M}}
%-----------------------------------------------------------------------------
%% The project out matrix and operator
\newcommand*{\INT}{\MAT{P}}
\newcommand*{\INTf}{P}
%-----------------------------------------------------------------------------
% The identity matrix
\newcommand*{\EYEtwo}{\Matrix{1 & 0\\0&1}}
\newcommand*{\EYE}{\MAT E}
\newcommand*{\EYEf}{E}
% Wether to use subscripts or brackets for some function arguments
% can be decided by commenting out the corresponding functions underneath
%-----------------------------------------------------------------------------
% Mapping
\newcommand*{\Cs}[1]{\ensuremath{C^{#1}}} % C symbol
\newcommand*{\C}[2]{\ensuremath{C^{#1}(#2)}} % Use C with brackets
%-----------------------------------------------------------------------------
% Objective function
\newcommand*{\Fs}{\ensuremath{F}} % F symbol
\newcommand*{\F}[1]{\ensuremath{\Fs(#1)}} % Use F with brackets F(q)
%-----------------------------------------------------------------------------
% Approximated objective functions
\newcommand*{\FFs}{\tilde{F}} % ~F symbol
\newcommand*{\FF}[1]{\ensuremath{\FFs(#1)}} % Use ~F with brackets F(q)
%-----------------------------------------------------------------------------
% residual function
\newcommand*{\es}{\ensuremath{f}} % R symbol
\newcommand*{\e}[1]{\ensuremath{\es(#1)}} % R(q)
\newcommand*{\er}[2]{\ensuremath{\es(#1; #2)}} % R(r; q)
%-----------------------------------------------------------------------------
% Approximated residual functions
\newcommand*{\ees}{\tilde{f}} % ~R symbol
\newcommand*{\ee}[1]{\ensuremath{\ees(#1)}} % ~R(q)
\newcommand*{\eer}[2]{\ensuremath{\ees(#2; #1)}} % ~R(r; q)
%-----------------------------------------------------------------------------
% Warps
\newcommand*{\Vs}{\ensuremath{V}}
\newcommand*{\VLins}{\ensuremath{\Vs^{\text{Ortho}}}}
\newcommand{\VModels}{\ensuremath{\Vs^{\text{Model}}}}
\newcommand*{\Ws}{\ensuremath{W}}
\newcommand{\V}[1]{\ensuremath{\Vs(#1)}}
\newcommand{\VModel}[1]{\ensuremath{\VModels(#1)}}
\newcommand{\Vr}[2]{\ensuremath{\Vs(#1; #2)}}
\newcommand{\VInvr}[2]{\ensuremath{\Vs^{-1}(#1; #2)}}
\newcommand{\VrLin}[2]{\ensuremath{\VLins(#1; #2)}}
\newcommand{\W}[1]{\ensuremath{\Ws(#1)}}
\newcommand{\Winv}[1]{\ensuremath{\Ws^{-1}(#1)}}
\newcommand{\Wr}[2]{\ensuremath{\Ws(#1; #2)}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Begin of Document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Here starts the poster
%%---------------------------------------------------------------------------
%% Format it to your taste with the options
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{poster}{
% Show grid to help with alignment
grid=false,
% Column spacing
colspacing=0.7em,
% Color style
headerColorOne=cyan!20!white!90!black,
borderColor=cyan!30!white!90!black,
% Format of textbox
textborder=faded,
% Format of text header
headerborder=open,
headershape=roundedright,
headershade=plain,
background=none,
bgColorOne=cyan!10!white,
headerheight=0.12\textheight}
% Eye Catcher
{
\includegraphics[width=0.08\linewidth]{track_frame_00010_06}
\includegraphics[width=0.08\linewidth]{track_frame_00450_06}
\includegraphics[width=0.08\linewidth]{track_frame_04999_06}
}
% Title
{\sc\Huge On Compositional Image Alignment}
% Authors
{Brian Amberg, Andrew Blake, and Thomas Vetter\\[1em]
{\texttt{Brian.Amberg@unibas.ch, ab@microsoft.com, Thomas.Vetter@unibas.ch}}}
% University logo
{
\begin{tabular}{r}
\includegraphics[height=0.12\textheight]{logo}\\
\raisebox{0em}[0em][0em]{\includegraphics[height=0.03\textheight]{msrlogo}}
\end{tabular}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Now define the boxes that make up the poster
%%%---------------------------------------------------------------------------
%%% Each box has a name and can be placed absolutely or relatively.
%%% The only inconvenience is that you can only specify a relative position
%%% towards an already declared box. So if you have a box attached to the
%%% bottom, one to the top and a third one which should be inbetween, you
%%% have to specify the top and bottom boxes before you specify the middle
%%% box.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Contribution: Fast \emph{and} reliable Face Alignment}{name=contribution,column=0,row=0,span=2}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Inverse compositional image alignment (ICIA) is fast, but not reliable. We
explain ICIA from a different perspective which leads naturally to two new
algorithms with a better capture range and comparable speed.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{There is no \emph{inverse} in \emph{ICIA}}{name=abstract,column=0,below=contribution}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Image aligment minimizes
\begin{align}
\F{\qq} &\defined \normLR{ \e{\qq,\pb} }^2_{\D},\label{eqn:f}\\
\text{with } \e{\qq} &\defined a - I\circ \W{\qq}\nonumber
\end{align}
composition with an incremental warp $\Vs$ approximates $\Fs$ around $\qq_0$ as
\begin{align}
\F{\C{\circ}{\qq_0, \pp}} \approx \FF{\qq_0, \pp} & \defined \normLR{\ee{\qq_0,\pp}}^2_{\D}\label{eqn:comp}\\
\text{with } \ee{\qq_0, \pp}&\defined \INTf(a - I \circ \W{\qq_0} \circ \V{\pp}) \quad.\nonumber
\end{align}
The gradient descent or Gauss-Newton update rule then gives an estimate of
the incremental warp, which drives the model warp.
ICIA can be derived by substituting the current backwarped image with the
model appearance after taking the derivative. The substitution can be used
to get an approximate gradient and/or Hessian, leading to a family of
algorithms.
Additionally we replace the incremental warp $V$ with an orthonormalized
warp and regularize in the composition step. The result is a vast
improvement in robustness without sacrificing speed.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Our methods are at the performance/speed sweet point}{name=speed,column=2,row=0,span=2}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\MSZ}
\setlength{\MSZ}{0.01\textwidth}
\newcommand{\MarkerCircle}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1] circle(\MSZ);}}
\newcommand{\MarkerRectangle}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1] (-\MSZ,-\MSZ) rectangle +(2\MSZ,2\MSZ);}}
\newcommand{\MarkerDiamond}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1,rotate=45] rectangle +(2\MSZ,2\MSZ);}}
\newcommand{\MarkerTriangle}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1] (-0.866\MSZ,-0.5\MSZ) -- (0\MSZ,1\MSZ) -- (0.866\MSZ,-0.5\MSZ) -- cycle ;}}
\newcommand{\MarkerUDTriangle}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1,rotate=180] (-0.866\MSZ,-0.5\MSZ) -- (0\MSZ,1\MSZ) -- (0.866\MSZ,-0.5\MSZ) -- cycle ;}}
\newcommand{\MarkerPlus}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1] (-\MSZ,-0.25\MSZ) rectangle +(2\MSZ,0.5\MSZ) (-0.25\MSZ,-\MSZ) rectangle +(0.5\MSZ,2\MSZ);}}
\newcommand{\MarkerX}[1]{%
\tikz{\draw[use as bounding box] (0,0); \draw[fill=#1,rotate=45] (-\MSZ,-0.25\MSZ) rectangle +(2\MSZ,0.5\MSZ) (-0.25\MSZ,-\MSZ) rectangle +(0.5\MSZ,2\MSZ);}}
\begin{tikzpicture}[x=0.00425\linewidth,y=13mm,font=\smaller]
% Ticks
\begin{scope}[color=black]
\foreach \y in {-0.2218487496,-0.1549019600,-0.0969100130,-0.0457574906,0.0000000000,
0.0000000000,0.3010299957,0.4771212547,0.6020599913,0.6989700043,0.7781512504,0.8450980400,0.9030899870,0.9542425094,1.0000000000,
1.0000000000,1.3010299957,1.4771212547,1.6020599913,1.6989700043,1.7781512504,1.8450980400,1.9030899870,1.9542425094,2.0000000000,
2.0000000000,2.3010299957,2.4771212547,2.6020599913,2.6989700043,2.7781512504,2.8450980400,2.9030899870,2.9542425094,3.0000000000} {
\draw[color=lightgray!20!white] (0,\y) -- +(100,0);
}
\foreach \y/\lbl in {0/$10^0$,1/$10^1$,2/$10^2$,3/$10^3$} {
\draw[color=black] (0,\y) node[anchor=east,color=black] {\lbl} -- +(100,0);
\draw[color=lightgray] (0,\y) -- +(100,0);
\draw[color=black] (0,\y) -- +(0.5\MSZ,0mm);
}
\foreach \x in {0,20,40,60,80,100} {
\draw (\x,-0.23) node[anchor=north,color=black] {\x};
\draw[color=lightgray] (\x,-0.23) -- +(0,3.23);
\draw[color=black] (\x,-0.23) -- +(0mm,0.5\MSZ);
}
\end{scope}
% Border
\draw[color=black] (0,3) -- (0,-0.23) (100,-0.23) -- (100,3);
% Axis labels
\draw (50,-0.23) node[below,yshift=-1em]{Success Rate (\%, Larger is better)};
\draw (0,1.5) node[above,rotate=90,yshift=1.6em]{Runtime (smaller is better)};
\draw (50,3) node[above]{The main algorithms starting within $20\%$ \ied{}};
% Data
\foreach \anch/\rot/\xs/\ys/\x/\y/\ttl/\stl in {
west/ 0 / 1 / 0 / 5.2631578947 / 0.0000000000 / Original \ICIA{} / {\MarkerCircle{blue}},
% west/ 0 / 1 / 0 / 14.2369727047 / 0.1128364125 / \ICIA{} + V^{\text{norm}}/ {\MarkerCircle{blue!70!white}},
east/ 0 /-1 / 0 / 38.9423076923 / 0.8814699511 / \CoLiNe{} / {\MarkerRectangle{green}},
west/ 0 / 1 / 0 / 39.4696029777 / 0.2610806897 / \LinCoDe{} / {\MarkerTriangle{red}},
west/ 0 / 1 / 0 / 56.8548387097 / 0.9091243545 / \CoDe{} / {\MarkerUDTriangle{yellow}},
west/ 0 / 1 / 0 / 36.4299007444 / 1.3563671940 / \CoNe{} / {\MarkerX{black!50!white}},
west/ 0 / 1 / 0 / 41.6918429003 / 2.6132022326 / L-BFGS (with reg) / {\MarkerPlus{red!50!blue!50!black}}
}{
\draw (\x,\y)
node[fill=none,anchor=\anch,xshift=\xs\MSZ,yshift=\ys\MSZ,rotate=\rot] {\ttl}
node{\stl};
\draw[fill=black] (\x,\y) circle(0.3\MSZ);
}
\end{tikzpicture}
\begin{tikzpicture}[x=0.00425\linewidth,y=13mm,font=\smaller]
% Ticks
\begin{scope}[color=black]
\foreach \y in {-0.2218487496,-0.1549019600,-0.0969100130,-0.0457574906,0.0000000000,
0.0000000000,0.3010299957,0.4771212547,0.6020599913,0.6989700043,0.7781512504,0.8450980400,0.9030899870,0.9542425094,1.0000000000,
1.0000000000,1.3010299957,1.4771212547,1.6020599913,1.6989700043,1.7781512504,1.8450980400,1.9030899870,1.9542425094,2.0000000000,
2.0000000000,2.3010299957,2.4771212547,2.6020599913,2.6989700043,2.7781512504,2.8450980400,2.9030899870,2.9542425094,3.0000000000} {
\draw[color=lightgray!20!white] (0,\y) -- +(100,0);
}
\foreach \y/\lbl in {0/$10^0$,1/$10^1$,2/$10^2$,3/$10^3$} {
\draw[color=black] (0,\y) node[anchor=east,color=black] {\lbl} -- +(100,0);
\draw[color=lightgray] (0,\y) -- +(100,0);
\draw[color=black] (0,\y) -- +(0.5\MSZ,0mm);
}
\foreach \x in {0,20,40,60,80,100} {
\draw (\x,-0.23) node[anchor=north,color=black] {\x};
\draw[color=lightgray] (\x,-0.23) -- +(0,3.23);
\draw[color=black] (\x,-0.23) -- +(0mm,0.5\MSZ);
}
\end{scope}
% Border
\draw[color=black] (0,3) -- (0,-0.23) (100,-0.23) -- (100,3);
% Axis labels
\draw (50,-0.23) node[below,yshift=-1em]{Success Rate (\%, Larger is better)};
\draw (0,1.5) node[above,rotate=90,yshift=1.6em]{Runtime (smaller is better)};
\draw (50,3) node[above,text width=0.5\linewidth,text centered]{All algorithms with $V^{\text{norm}}$ and regularisation};
\foreach \anch/\rot/\xs/\ys/\x/\y/\ttl/\stl in {
south/0 / 0 / 1.0/ 26.4701318852 / 0.6174735535 / \ICIA{} + $V^{\text{norm}}$ / {\MarkerCircle{ blue!50!black}},
south/0 / 0 / 1.0/ 52.1334367727 / 1.0781366795 / \CoLiNe{} / {\MarkerRectangle{ green!50!black}},
west/ 0 / 1 / 0 / 55.9348332040 / 0.5514820720 / \LinCoDe{} / {\MarkerTriangle{ red!50!black}},
west/ 0 / 1 / 0 / 66.0356865787 / 1.1158139989 / \CoDe{} / {\MarkerUDTriangle{yellow!50!black}},
west/ 0 / 1 / 0 / 66.9511249030 / 1.8260835334 / \CoNe{} / {\MarkerX{ black!50!white!50!black}},
west/ 0 / 1 / 0 / 41.6918429003 / 2.6132022326 / L-BFGS / {\MarkerPlus{ red!50!blue!50!black}}
}{
\draw (\x,\y)
node[fill=none,anchor=\anch,xshift=\xs\MSZ,yshift=\ys\MSZ,rotate=\rot] {\ttl}
node{\stl};
\draw[fill=black] (\x,\y) circle(0.3\MSZ);
}
\end{tikzpicture}
\begin{multicols}{2}
\textbf{Fitting a multiperson AAM. }
The best speed--performance tradeoffs come from the two new algorithms
\CoDe{} and \LinCoDe{}. Note that \ICIA{} is practically useless on
this difficult multi-person dataset with a success rate near zero (left). It
can be improved (right) by using the orthonormal incremental warp and
regularisation. The \CoDe{} algorithm with regularisation (right) is as
accurate as the slow, approximation-free, compositional Gauss-Newton \CoNe{}
method but is seven times more efficient.
The experiments were performed with leave one identity out on a mixture of two databases (XM2VTS and IMM).
\end{multicols}
}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \headerbox{Methods Compared}{name=methods,column=0,below=algorithm}{
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \begin{tabular}{rllllll}
% Method & Hessian & & Gradient & & Speed & Capture Range\\
% \midrule
% \CoDe{} (this paper) & Not used & & True: & $\tilde{J}_{\qq_0}^T\e{\qq_0}$ & Fast & Large \\[0.1em]
% \LinCoDe{} (this paper) & Not used & & Linear Approx: & $\bar{J}^T\e{\qq_0}$ & Very Fast & Medium \\[0.1em]
% \CoLiNe{}~\cite{burkhardt86:motion} & Constant Approx.: & $\bar{J}^T\bar{J}$ & True: & $\tilde{J}_{\qq_0}^T\e{\qq_0}$ & Fast & Medium \\[0.1em]
% \ICIA{}~\cite{matthews:aamr} & Constant Approx.: & $\bar{J}^T\bar{J}$ & Linear Approx: & $\bar{J}^T\e{\qq_0}$ & Very Fast & Small \\[0.1em]
% \CoNe{}~\cite{matthews:kanade20} & Gauss-Newton Approx.: & $\tilde{J}_{\qq_0}^T\tilde{J}_{\qq_0}$ & True: & $\tilde{J}_{\qq_0}^T\e{\qq_0}$ & Slow & Large
% \end{tabular}
% The methods introduced in this paper are Hessian-free gradient descent methods.
% }
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{References}{name=references,column=0,above=bottom}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\smaller
\bibliographystyle{ieee}
\renewcommand{\section}[2]{\vskip 0.05em}
\begin{thebibliography}{1}\itemsep=-0.01em
\setlength{\baselineskip}{0.4em}
\bibitem{amberg07:nicp}
B.~Amberg, A.~Blake, T.~Vetter
\newblock On Compositional Image Alignment with an Application to Activce Appearance Models
\newblock In {\em CVPR'09}, 2009.
\end{thebibliography}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Training + Testing Data}{name=data,column=0,above=references,below=abstract}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\includegraphics[width=0.2\linewidth]{018_4_2_masked}%
\includegraphics[width=0.2\linewidth]{328_2_1_masked}%
\includegraphics[width=0.2\linewidth]{319_2_1_masked}%
\includegraphics[width=0.2\linewidth]{027_4_2_masked}%
\includegraphics[width=0.2\linewidth]{020_1_1_masked}
\includegraphics[width=0.2\linewidth]{12_2f_masked}%
\includegraphics[width=0.2\linewidth]{21_3m_masked}%
\includegraphics[width=0.2\linewidth]{09_6m_masked}%
\includegraphics[width=0.2\linewidth]{33_4m_masked}%
%\includegraphics[width=0.2\linewidth]{22_3f_masked}
$\dots$\\
The model was trained from 456 images from the IMM and XM2VTS datasets using
120 landmarks. Get the landmarks, model, and source code at:\\
\mbox{\url{www.cs.unibas.ch/personen/amberg_brian/aam/}}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Tracking 5000 frames with a general model}{name=tracking,column=2,span=2,below=speed,above=bottom}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{
\begin{tabular}{c@{\hspace{0.05em}}c@{\hspace{0.1em}}c@{\hspace{0.1em}}c@{\hspace{0.1em}}c@{\hspace{1em}}c@{\hspace{0.1em}}c@{\hspace{0.1em}}c@{\hspace{0.1em}}c@{\hspace{0.1em}}c}
\multicolumn{5}{c}{\smaller \ICIA{} with $\VLins$} &
\multicolumn{5}{c}{\smaller \ICIA{} with $\VLins$ + Regularisation}\\[-0.2em]
\includegraphics[width=0.095\linewidth]{track_frame_00010_01}&
\includegraphics[width=0.095\linewidth]{track_frame_00050_01}&
\includegraphics[width=0.095\linewidth]{track_frame_00450_01}&
\includegraphics[width=0.095\linewidth]{track_frame_02000_01}&
\includegraphics[width=0.095\linewidth]{track_frame_04999_01}&
%
\includegraphics[width=0.095\linewidth]{track_frame_00010_02}&
\includegraphics[width=0.095\linewidth]{track_frame_00050_02}&
\includegraphics[width=0.095\linewidth]{track_frame_00450_02}&
\includegraphics[width=0.095\linewidth]{track_frame_02000_02}&
\includegraphics[width=0.095\linewidth]{track_frame_04999_02}\\[-0.1em]
%
\multicolumn{5}{c}{\smaller \LinCoDe{}} &
\multicolumn{5}{c}{\smaller \LinCoDe{} + Regularisation}\\[-0.2em]
\includegraphics[width=0.095\linewidth]{track_frame_00010_03}&
\includegraphics[width=0.095\linewidth]{track_frame_00050_03}&
\includegraphics[width=0.095\linewidth]{track_frame_00450_03}&
\includegraphics[width=0.095\linewidth]{track_frame_02000_03}&
\includegraphics[width=0.095\linewidth]{track_frame_04999_03}&
%
\includegraphics[width=0.095\linewidth]{track_frame_00010_04}&
\includegraphics[width=0.095\linewidth]{track_frame_00050_04}&
\includegraphics[width=0.095\linewidth]{track_frame_00450_04}&
\includegraphics[width=0.095\linewidth]{track_frame_02000_04}&
\includegraphics[width=0.095\linewidth]{track_frame_04999_04}\\[-0.1em]
%
\multicolumn{5}{c}{\smaller \CoDe{}} &
\multicolumn{5}{c}{\smaller \CoDe{} + Regularisation}\\[-0.2em]
\includegraphics[width=0.095\linewidth]{track_frame_00010_05}&
\includegraphics[width=0.095\linewidth]{track_frame_00050_05}&
\includegraphics[width=0.095\linewidth]{track_frame_00450_05}&
\includegraphics[width=0.095\linewidth]{track_frame_02000_05}&
\includegraphics[width=0.095\linewidth]{track_frame_04999_05}&
%
\includegraphics[width=0.095\linewidth]{track_frame_00010_06}&
\includegraphics[width=0.095\linewidth]{track_frame_00050_06}&
\includegraphics[width=0.095\linewidth]{track_frame_00450_06}&
\includegraphics[width=0.095\linewidth]{track_frame_02000_06}&
\includegraphics[width=0.095\linewidth]{track_frame_04999_06}\\[-0.5em]
\smaller Frame 10 & \smaller Frame 50 & \smaller Frame 450 & \smaller Frame 2000 & \smaller Frame 5000 &
\smaller Frame 10 & \smaller Frame 50 & \smaller Frame 450 & \smaller Frame 2000 & \smaller Frame 5000
\end{tabular}
}
\vspace{-1.2em}
\begin{multicols}{2}
{\textbf{Our algorithm makes fast and robust tracking possible.}
We compare face tracking under natural motion, using \ICIA{},
\LinCoDe{} and \CoDe{}. The original \ICIA{} fails
immediately with this large model and new face data. Substituting the orthonormal
incremental warp for the original \ICIA{} warp, the algorithm still loses track
very early, whereas \LinCoDe{} and \CoDe{} can track much
further. Finally, adding regularisation to all algorithms, \ICIA{} still
loses track completely after approximately 500 frames and does not recover
the local deformations accurately. In contrast \CoDe{} now tracks the full
5000 frame sequence without reinitialization, and \LinCoDe{} tracks for 2500 frames.}
The same training dataset was used for both tracking experiments. The
training data was aquired with different camera and light settings from
different subjects.
\end{multicols}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Low Res Tracking}{name=lowrestracking,column=1,span=1,below=speed,above=bottom}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{tabular}{@{}c@{}c@{}c@{}c@{}c@{}}
\multicolumn{5}{c}{\smaller \ICIA{} with $\VLins$}\\[-0.2em]
\includegraphics[width=0.2\linewidth]{bush_00010_02}&
\includegraphics[width=0.2\linewidth]{bush_00100_02}&
\includegraphics[width=0.2\linewidth]{bush_00200_02}&
\includegraphics[width=0.2\linewidth]{bush_00300_02}&
\includegraphics[width=0.2\linewidth]{bush_00400_02}\\[-0.1em]
\multicolumn{5}{c}{\smaller \LinCoDe{}}\\[-0.2em]
\includegraphics[width=0.2\linewidth]{bush_00010_05}&
\includegraphics[width=0.2\linewidth]{bush_00100_05}&
\includegraphics[width=0.2\linewidth]{bush_00200_05}&
\includegraphics[width=0.2\linewidth]{bush_00300_05}&
\includegraphics[width=0.2\linewidth]{bush_00400_05}\\[-0.1em]
\multicolumn{5}{c}{\smaller \CoDe{}}\\[-0.2em]
\includegraphics[width=0.2\linewidth]{bush_00010_08}&
\includegraphics[width=0.2\linewidth]{bush_00100_08}&
\includegraphics[width=0.2\linewidth]{bush_00200_08}&
\includegraphics[width=0.2\linewidth]{bush_00300_08}&
\includegraphics[width=0.2\linewidth]{bush_00400_08}\\[-0.5em]
\smaller Frame 10 & \smaller Frame 100 & \smaller Frame 200 & \smaller Frame 300 & \smaller Frame 400
\end{tabular}
\vspace{1.25em}
\textbf{Tracking a low resolution video with large head motions
succeeds with \CoDe{}, where \ICIA{} fails.}\\ All methods used the orthonormal
incremental warp, and relatively strong regularisation. \ICIA{} starts to
drift in the early frames, while~\CoDe{} tracks the full sequence. The
approximate gradient method \LinCoDe{} also suceeds, but looses
track of the details for about 100 frames.
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Compositional Alignment}{name=algorithm,column=1,above=lowrestracking,below=contribution}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{algorithm}[H]
\dontprintsemicolon
\linesnumbered
\For{Blur and regularisation values}{
\nl Initialize $\qq, \qq_{\text{best}}$ and $\kappa$\;
\Repeat{converged}{
\nl Calculate $\Nabla{\pp}{\tilde{F}(\qq,\VEC 0)}$, $F(\qq)$\;
\eIf{$F(\qq) < F(\qq_{\text{best}})$}{
%\nl Calculate distance between best warp estimate and current warp estimate to test for convergence\;
\nl $\qq_{\text{best}} \gets \qq$\;
%\If{More than three successiv updates}{ (Too much detail)
\nl Increase $\kappa$\;
%}
}{
\If{$\kappa$ smaller than threshold}{
\nl return\;
}%{
decrease $\kappa$\;
%}
}
\nl Calculate $\pp$ from $\Nabla{\pp}{\tilde{F}(\qq_{best},\pp)}$ and $\kappa$\;
\nl $\qq \gets \C{\circ}{\qq, \pp}$
}
}
\end{algorithm}
}
\end{poster}%
%
\end{document}