presentation.tex 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. \documentclass{beamer}
  2. \mode<presentation>
  3. \usetheme{sidebar}
  4. \setbeamertemplate{footline}[page number]
  5. \title{Kentekenherkenning met Local Binary Patterns}
  6. \date{23 december 2011}
  7. \author{
  8. Gijs van der Voort\\
  9. Fabi\"en Tesselaar\\
  10. Richard Torenvliet\\
  11. Tadde\"us Kroes\\
  12. Jayke Meijer
  13. }
  14. \begin{document}
  15. \begin{frame}
  16. \titlepage
  17. \end{frame}
  18. \section{Inleiding}
  19. \begin{frame}
  20. \frametitle{Probleemomschrijving}
  21. \begin{itemize}
  22. \item Herkennen van kentekens met LBP
  23. \item Focus op herkennen enkele karakters
  24. \end{itemize}
  25. \end{frame}
  26. \begin{frame}
  27. \frametitle{Doel}
  28. \begin{enumerate}
  29. \item Omzetten van dataset naar afzonderlijke karakters
  30. \item Karakter normaliseren
  31. \item Feature vector maken met LBP
  32. \item SVM classifier trainen met feature vectors
  33. \item Meten van performance
  34. \end{enumerate}
  35. \end{frame}
  36. \section{Local Binary Patterns}
  37. \begin{frame}
  38. \frametitle{Wat is een Local Binary Pattern?}
  39. \begin{itemize}
  40. \item Vergelijken van grijswaardes op lokaal niveau
  41. \item Ongevoelig voor verschillen in belichting (gray-scale
  42. invariant)
  43. \item Simpel algoritme, dus snelle implementatie mogelijk
  44. \end{itemize}
  45. \end{frame}
  46. \section{Implementatie}
  47. \begin{frame}
  48. \frametitle{Omzetten karakters}
  49. \begin{itemize}
  50. \item Dataset bestaat uit foto's van kentekens met informatie over
  51. locaties van karakters
  52. \item Dataset bevat veel fouten
  53. \item Eenmalige operatie
  54. \end{itemize}
  55. \end{frame}
  56. \begin{frame}
  57. \frametitle{Karakter normaliseren}
  58. \begin{itemize}
  59. \item Transformeer alle karakters naar dezelfde hoogte om dikte te
  60. normaliseren
  61. \item Ruisonderdrukking m.b.v. Gaussian blur
  62. \end{itemize}
  63. \end{frame}
  64. \begin{frame}
  65. \frametitle{Feature vector maken met LBP}
  66. \begin{enumerate}
  67. \item Kies een pixel
  68. \pause
  69. \item Kies een aantal buren van de pixel
  70. \begin{figure}
  71. \includegraphics[scale=.3]{neighbourhoods.png}
  72. \end{figure}
  73. \pause
  74. \item Vergelijk de grijswaarde van de eerder gekozen pixel met de
  75. grijswaarde van zijn buren, elke vergelijking levert een 1 of 0 op
  76. \pause
  77. \item Deze binaire waardes samen vormen \'e\'en LBP
  78. \pause
  79. \item Maak een histogram van elke cel in de afbeelding,
  80. concatenatie van histogrammen is de feature vector
  81. \end{enumerate}
  82. \end{frame}
  83. \begin{frame}
  84. \frametitle{Trainen SVM classifier}
  85. \begin{itemize}
  86. \item Radial kernel function
  87. \item Gebruik \texttt{libsvm}
  88. \end{itemize}
  89. \end{frame}
  90. \section{Resultaten}
  91. \begin{frame}
  92. \frametitle{Parameter Gaussian blur: $\sigma$}
  93. \begin{itemize}
  94. \item Theorie: proportioneel aan de dikte van een letter
  95. \item Beste resultaat met $\sigma = 1.9$ \\
  96. $1.9 \cdot 6 = 11$ pixels, breedte karakter is 8 pixels
  97. \end{itemize}
  98. \end{frame}
  99. \begin{frame}
  100. \frametitle{Parameters SVM: Soft-margin en $\gamma$}
  101. \begin{itemize}
  102. \item Bepaald door grid-search:
  103. \begin{itemize}
  104. \item Kies exponentieel oplopende waardes voor $C$ en $\gamma$
  105. \item Train een SVM voor elke combinatie van waardes
  106. \item Zet de resultaten in een tabel
  107. \end{itemize}
  108. \item Beste resultaat met $C = 32.0$ en $\gamma = 0.125$
  109. \end{itemize}
  110. \end{frame}
  111. \begin{frame}
  112. \frametitle{Meten van performance}
  113. \begin{itemize}
  114. \item Accuratie
  115. \begin{itemize}
  116. \item Score van $94.3\%$
  117. \end{itemize}
  118. \item snelheid bij standaardhoogte van 42 pixels:
  119. \begin{itemize}
  120. \item $3 \times 3$ omgeving (8 pixels in patroon): 81ms
  121. \item $5 \times 5$ omgeving (12 pixels in patroon): 137ms
  122. \item feature vector $16\times$ groter, $1.7\times$ zoveel tijd
  123. \end{itemize}
  124. \end{itemize}
  125. \end{frame}
  126. \begin{frame}
  127. \frametitle{Foutief geclassificeerde karakters}
  128. \begin{figure}
  129. \includegraphics[scale=.2]{faulty.png}
  130. \end{figure}
  131. \end{frame}
  132. \section{Mogelijkheden voor vervolgonderzoek}
  133. \begin{frame}
  134. \frametitle{Mogelijkheden voor vervolgonderzoek}
  135. \structure{Accuratie}
  136. \begin{itemize}
  137. \item Meerdere cells
  138. \item Andere pixelpatronen voor LBP
  139. \item Betere verdeling leerset/testset
  140. \item Toevoegen contextinformatie
  141. \end{itemize}
  142. \structure{Snelheid}
  143. \begin{itemize}
  144. \item Rekenintentensieve taken vertalen naar C
  145. \item Andere kernel type
  146. \item `Cachen' Gaussian filter
  147. \end{itemize}
  148. \end{frame}
  149. \section{Conclusie}
  150. \begin{frame}
  151. \frametitle{Conclusie}
  152. \begin{itemize}
  153. \item LBP is een geschikt algoritme voor gebruik in
  154. kentekenherkenning
  155. \item Zowel accuratie als snelheid
  156. \end{itemize}
  157. \end{frame}
  158. \section{Referenties}
  159. \begin{frame}
  160. \frametitle{Referenties}
  161. \begin{itemize}
  162. \item \url{http://en.wikipedia.org/wiki/Local\_binary\_patterns}
  163. \item \url{http://en.wikipedia.org/wiki/Support\_vector\_machine}
  164. \item \url{http://www.csie.ntu.edu.tw/~cjlin/libsvm/}
  165. \end{itemize}
  166. \end{frame}
  167. \end{document}