\documentclass{beamer}
\mode<presentation>
\usetheme{sidebar}
\setbeamertemplate{footline}[page number]

\title{Kentekenherkenning met Local Binary Patterns}
\date{23 december 2011}
\author{
    Gijs van der Voort\\
    Fabi\"en Tesselaar\\
    Richard Torenvliet\\
    Tadde\"us Kroes\\
    Jayke Meijer
}

\begin{document}

    \begin{frame}
        \titlepage
    \end{frame}

    \section{Inleiding}

    \begin{frame}
        \frametitle{Probleemomschrijving}

        \begin{itemize}
            \item Herkennen van kentekens met LBP
            \item Focus op herkennen enkele karakters
        \end{itemize}
    \end{frame}

    \begin{frame}
        \frametitle{Doel}

        \begin{enumerate}
            \item Omzetten van dataset naar afzonderlijke karakters
            \item Karakter normaliseren
            \item Feature vector maken met LBP
            \item SVM classifier trainen met feature vectors
            \item Meten van performance
        \end{enumerate}
    \end{frame}

    \section{Local Binary Patterns}

    \begin{frame}
        \frametitle{Wat is een Local Binary Pattern?}

        \begin{itemize}
            \item Vergelijken van grijswaardes op lokaal niveau
            \item Ongevoelig voor verschillen in belichting (gray-scale
            invariant)
            \item Simpel algoritme, dus snelle implementatie mogelijk
        \end{itemize}
    \end{frame}

    \section{Implementatie}

    \begin{frame}
        \frametitle{Omzetten karakters}

        \begin{itemize}
            \item Dataset bestaat uit foto's van kentekens met informatie over
            locaties van karakters
            \item Dataset bevat veel fouten
            \item Eenmalige operatie
        \end{itemize}
    \end{frame}

    \begin{frame}
        \frametitle{Karakter normaliseren}

        \begin{itemize}
            \item Transformeer alle karakters naar dezelfde hoogte om dikte te
            normaliseren
            \item Ruisonderdrukking m.b.v. Gaussian blur
        \end{itemize}
    \end{frame}

    \begin{frame}
        \frametitle{Feature vector maken met LBP}

        \begin{enumerate}
            \item Kies een pixel
            \item Kies een aantal buren van de pixel
            \begin{figure}
                \includegraphics[scale=.4]{12-5neighbourhood.png}
            \end{figure}
            \item Vergelijk de grijswaarde van de eerder gekozen pixel met de
            grijswaarde van zijn buren
            \item Elke vergelijking levert een 1 of 0 op (b.v. groter is 1,
            kleiner gelijk is 0)
            \item Deze binaire waardes samen vormen \'e\'en LBP
            \item Maak een histogram van de LBP's, dit is de feature vector van
            de afbeelding
        \end{enumerate}
    \end{frame}

    \begin{frame}
        \frametitle{Trainen SVM classifier}

        \begin{itemize}
            \item Radial kernel function
            \item Gebruik \texttt{libsvm}
        \end{itemize}
    \end{frame}

    \begin{frame}
        \frametitle{Meten van performance}

        \begin{itemize}
            \item Accuratie
            \item Snelheid
        \end{itemize}
    \end{frame}

    \section{Resultaten}

    \begin{frame}
        \frametitle{Parameter Gaussian blur: $\sigma$}

        \begin{itemize}
            \item Theorie: proportioneel aan de dikte van een letter
            \item Beste resultaat met $\sigma = 1.9$ \\
            $1.9 \cdot 6 = 11$ pixels, breedte karakter is 8 pixels
        \end{itemize}
    \end{frame}

    \begin{frame}
        \frametitle{Parameters SVM: Soft-margin en $\gamma$}

        \begin{itemize}
            \item Bepaald door grid-search:
            \begin{itemize}
                \item Kies exponentieel oplopende waardes voor $C$ en $\gamma$
                \item Train een SVM voor elke combinatie van waardes
                \item Zet de resultaten in een tabel
            \end{itemize}
            \item Beste resultaat met $C = 32.0$ en $\gamma = 0.125$
        \end{itemize}
    \end{frame}

    \begin{frame}
        \frametitle{Resultaten met dataset}

        \begin{itemize}
            \item Score van $94.3\%$
            \item Foutief geclassificeerde karakters:
            \begin{figure}
                \includegraphics[scale=.2]{faulty.png}
            \end{figure}
        \end{itemize}
    \end{frame}

    \section{Mogelijkheden tot verbetering}

    \begin{frame}
        \frametitle{Mogelijkheden voor vervolgonderzoek}

        \structure{Snelheid}
        \begin{itemize}
            \item Rekenintentensieve taken vertalen naar C
            \item Andere kernel type
            \item `Cachen' Gaussian filter
        \end{itemize}

        \structure{Accuratie}
        \begin{itemize}
            \item Andere pixelpatronen voor LBP
            \item Betere verdeling leerset/testset
            \item Toevoegen contextinformatie
        \end{itemize}
    \end{frame}

    \section{Conclusie}

    \begin{frame}
        \frametitle{Conclusie}

        \begin{itemize}
            \item LBP is een geschikt algoritme voor gebruik in
            kentekenherkenning
            \item Zowel accuratie als snelheid
        \end{itemize}
    \end{frame}

    \section{Referenties}

    \begin{frame}
        \frametitle{Referenties}

        \begin{itemize}
            \item \url{http://en.wikipedia.org/wiki/Local\_binary\_patterns}
        \end{itemize}
    \end{frame}
\end{document}
