\documentclass[portrait,final,a0paper,fontscale=0.277]{baposter}

\usepackage{calc}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{relsize}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{bm}
\usepackage{enumitem}
\usepackage{url}
\usepackage{booktabs}

\usepackage{graphicx}
\usepackage{multicol}

%\usepackage{times}
%\usepackage{helvet}
%\usepackage{bookman}
\usepackage{palatino}

\newcommand{\captionfont}{\footnotesize}

\graphicspath{{images/}{../images/}}
\usetikzlibrary{calc}


\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}

%\font\dsfnt=dsrom12

\newcommand{\SNN}{\ensuremath{\mathbb N}}
\newcommand{\SRR}{\ensuremath{\mathbb R}}
\newcommand{\SZZ}{\ensuremath{\mathbb Z}}
%-----------------------------------------------------------------------------
% Matrices of the shape model
\renewcommand{\a}{\VEC\alpha}
\renewcommand{\v}{\VEC v}
\renewcommand{\l}{\VEC l}
\newcommand*{\m}{\VEC{\mu}}
\newcommand*{\M}{\MAT{M}}
\renewcommand*{\P}{\MAT{\Pi}}

%\newcommand{\J}{\SET J}
\newcommand{\J}{\SET{P}}
\newcommand{\Active}{\mathcal{A}}
\newcommand{\Selection}{\mathbf{S}}
\newcommand{\AllSelections}{\mathfrak{S}}
\newcommand{\Params}{\VEC\Theta}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Some math symbols used in the text
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Multicol Settings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setlength{\columnsep}{1.5em}
\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}%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Begin of Document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Here starts the poster
%%%---------------------------------------------------------------------------
%%% Format it to your taste with the options
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Define some colors

\definecolor{lightorange}{rgb}{0.9,0.4,0}
\definecolor{lightestorange}{rgb}{1,0.8,0.5}
\definecolor{darkorange}{rgb}{0.2,0.1,0}

\hyphenation{resolution occlusions}
%%
\begin{poster}%
  % Poster Options
  {
  % Show grid to help with alignment
  grid=false,
  % Column spacing
  colspacing=1em,
  % Color style
  bgColorOne=lightestorange,
  bgColorTwo=white,
  borderColor=darkorange,
  headerColorOne=darkorange,
  headerColorTwo=lightorange,
  headerFontColor=white,
  boxColorOne=lightestorange,
  boxColorTwo=lightorange,
  % Format of textbox
  textborder=faded,
  % Format of text header
  eyecatcher=true,
  headerborder=closed,
  headerheight=0.1\textheight,
%  textfont=\sc, An example of changing the text font
  headershape=roundedright,
  headershade=shadelr,
  headerfont=\Large\bf\textsc, %Sans Serif
  textfont={\setlength{\parindent}{1.5em}},
  boxshade=plain,
%  background=shade-tb,
  background=plain,
  linewidth=2pt
  }
  % Eye Catcher
  {\includegraphics[height=7em]{images/search_tree_ex1-crop.pdf}} 
  % Title
  {\bf\textsc{Optimal Landmark Detection using Shape Models and Branch and Bound}\vspace{0.5em}}
  % Authors
  {\textsc{\{ Brian.Amberg and Thomas.Vetter \}@unibas.ch}}
  % University logo
  {% The makebox allows the title to flow into the logo, this is a hack because of the L shaped logo.
    \includegraphics[height=9.0em]{images/logo}
  }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 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 in between, you 
%%% have to specify the top and bottom boxes before you specify the middle 
%%% box.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %
    % A coloured circle useful as a bullet with an adjustably strong filling
    \newcommand{\colouredcircle}{%
      \tikz{\useasboundingbox (-0.2em,-0.32em) rectangle(0.2em,0.32em); \draw[draw=black,fill=lightblue,line width=0.03em] (0,0) circle(0.18em);}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \headerbox{Problem}{name=problem,column=0,row=0}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  Fitting statistical 2D and 3D shape models to images is necessary for a
  variety of tasks, such as video editing and face recognition. Much progress
  has been made on local fitting from an initial guess, but determining a close
  enough initial guess is still an open problem. We propose a method to locate
  fiducial points, which can then be used to initialize the fitting.
 }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \headerbox{Contributions}{name=contribution,column=0,below=problem}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  We overcome the inherent ambiguity in landmark detection by using global shape
  information. We solve the  combinatorial problem of selecting out of a large
  number of candidate landmark detections the configuration which is best
  supported by a shape model. Our method, as opposed to previous approaches,
  always finds the globally optimal configuration.

  The algorithm can be applied to a very general class of shape models and is
  independent of the underlying feature point detector. Its theoretic optimality
  is shown, and it is evaluated on a large face dataset.
  }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Results}{name=results,column=1,span=2,row=0}{
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  {
\smaller\centering
\begin{tabular}{@{}rccccccc@{}}
\begin{sideways}\makebox[0pt][c]{Success}\end{sideways} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_fa_success_1.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_fb_success_1.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_ql_success_1.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_qr_success_1.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_hl_success_1.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_hr_success_1.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_rc_success_1.pdf}} \\
&
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_fa_success_2.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_fb_success_2.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_ql_success_2.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_qr_success_2.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_hl_success_2.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_hr_success_2.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_rc_success_2.pdf}} \\
\midrule
\begin{sideways}\makebox[0pt][c]{Failure}\end{sideways} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_fa_fail.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_fb_fail.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_ql_fail.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_qr_fail.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_hl_fail.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_hr_fail.pdf}} &
\parbox[c]{0.11\linewidth}{\includegraphics[width=\linewidth]{images/l_rc_fail.pdf}} 
\end{tabular}
  }\\[-1em]
      \begin{multicols}{2}
Some randomly chosen images from the color feret database for each
pose, and the detected landmark positions. The first two rows are success
cases, the last row shows a failure case. 
      \end{multicols}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \headerbox{Representation}{name=representation,column=2,below=results}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\centering\includegraphics[width=\linewidth]{images/representation.pdf}
Subsets of solutions are encoded as the Kartesian product of subsets of landmark candidates per fiducial point. 
  }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Scaling Behaviour}{name=scaling,column=2,below=representation}{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \smaller%
  \centering{Runtime as a function of the number of false positives}\\[0em]%
  \centering{{\includegraphics[width=0.9\linewidth]{images/typical_random_no_noise-crop.pdf}}}\\[0em]%
  \centering{Runtime as a function of detection accuracy}\\[0em]%
  \centering{{\includegraphics[width=0.9\linewidth]{images/typical_random_add_noise-crop.pdf}}}\\[0em]%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \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{amberg11:bnb}
        B.~Amberg, T. Vetter.
        \newblock {O}ptimal {L}andmark {D}etection using {S}hape {M}odels and {B}ranch and {B}ound
        \newblock In {\em ICCV '11}
      \end{thebibliography}
   \vspace{0.3em}
  }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \headerbox{Source Code}{name=source,column=2,above=bottom}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \noindent
  \begin{minipage}{\linewidth}
  \begin{minipage}{0.75\linewidth}
    \indent{}The source code is available at \\
    \url{http://www.cs.unibas.ch/personen/amberg_brian/bnb/}
  \end{minipage}\hfill%
  \begin{minipage}{0.23\linewidth}
  \hfill\includegraphics[width=\linewidth]{chart}
  \end{minipage}
  \end{minipage}
  }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \headerbox{Formulation}{name=formulation,column=0,below=contribution,above=references}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The solution is constrained by a shape model
\begin{align}
  M(\Params) &= (m_1(\Params), \dots, m_N(\Params))\\
   m_i &: \SRR^{N_{\Params}}\to\SRR^2\nonumber
\end{align}
mapping model parameters~$\Params$ to image positions $m_i(\Params)$.
For each fiducial point $m_i$ a set of candidate positions 
\begin{align}
 L_i &= \{\l_i^1, \l_i^2, \dots\} & \l_i^j \in \SRR^2
\end{align}
is detected in the image.
The task is to assign to every model vertex one of the candidate positions
such that the shape model can be best fit to the selection $\Selection{}$, written as a tuple 
\begin{align}
  \Selection &=(j_1, j_2, \dots, j_N) & j_i &\in \SNN,\label{eqn:selection}
\end{align}
where $j_i$ is the index of a candidate of landmark $i$. 

So we minimize the distance between the shape model and the image landmarks:
\begin{align}
  \Selection^* &= \argmin_{\Selection=(j_1, \dots, j_N)} f(\Selection)\nonumber\\
  f(\Selection) &= \min_{\Params} \sum_i \rho\left( \normLR{ m_i(\Params) - \l_i^{j_i} }\right)\quad.\label{eqn:cost}
\end{align}
Where $\rho: \SRR\to\SRR$ is a robust function, allowing us to handle missing
detections, and points which are invisible due to occlusion.
  }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \headerbox{Splitting Strategy}{name=strategy,column=1,above=bottom}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\smaller\centering{Runtime as a function of the splitting strategy}\\[-0.5em]
\includegraphics[width=0.95\linewidth]{images/typical_random_splitting_strategies.pdf}}
Different splitting strategies result in vastly different performance.
Note that  `split into equal sized problems' is one of the worst strategies for
branch and bound.
  }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\headerbox{Solution}{name=solution,column=1,row=0,below=results,above=strategy}{
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  This discrete optimization is solved by Branch and Bound, which is a method to minimize a function over a set. It requires us to (1) efficiently specify solution subsets, (2) determine a lower bound on the minimal cost of the solutions within a subset, and (3) specify a strategy to split a solution subset into two new subsets.
%\begin{enumerate}[itemsep=2pt,parsep=0pt]
%  \item Start with the set of all elements $\SET Q=\{ \AllSelections \}$
%  \item \textbf{Repeat}:
%  \begin{enumerate}[itemsep=2pt,parsep=0pt,topsep=2pt]
%  \item  Take the minimal subset\vspace{-0.7em}
%    \begin{align}
%      \J_i &\leftarrow \argmin_{\J_i \in \SET Q} g(\J_i)\\
%                  \SET Q   &\leftarrow \SET Q \setminus \{ \J_i \}\nonumber
%    \end{align}
%  \item
%    \textbf{Return} $\Selection$ \textbf{if} $\J_i=\{\Selection\}$ is a single element.
%  \item Split $\J_i$ into \vspace{-0.7em}
%    \begin{align}
%      \J_i^1 &\subset \J_i, \J_i^2 \subset \J_i\\\quad\text{ s.t. }\J_i &= \J_i^1 \cup \J_i^2.\nonumber
%    \end{align}
%  \item Add the new subsets to the candidates\vspace{-0.7em}
%    \begin{align}
%      \SET Q &\leftarrow \SET Q \cup \{ \J_i^1, \J_i^2 \}\nonumber
%    \end{align}
%  \end{enumerate}
%\end{enumerate}

  The ingredients in our case are:
 \begin{enumerate}
 \item Solution subsets are created by taking subsets of landmark
 candidates, and considering the Kartesian product of all selected landmark
 candidates
 \item We bound the cost for such a solution set by taking for each
 landmark the minimal distance to the convex hull of the selected candidates
% \begin{align}
%   g(\J) &= \min_{\Params} \sum_i \rho\left( d_{\text{convex hull}}(\l_i^{\J_i}, m_i(\Params)) \right)\\
%         &< \min_{\Params} \min %\nonumber\\
%   d_{\text{convex hull}}(\l_i^\J, \VEC x) &=  \min_{c \in \text{convex hull}(\l_i^{\J})}\normLR{ x - c }.
% \end{align}
 \item We found that splitting landmark candidates such that the convex hull of the resulting two landmark candidates are as distant as possible is most effective.
 \end{enumerate}
  }

\end{poster}

\end{document}

