Jelajahi Sumber

Extended section on speed performance.

Jayke Meijer 14 tahun lalu
induk
melakukan
1596676061
1 mengubah file dengan 34 tambahan dan 22 penghapusan
  1. 34 22
      docs/report.tex

+ 34 - 22
docs/report.tex

@@ -265,6 +265,10 @@ tried the following neighbourhoods:
 \caption{Tested neighbourhoods}
 \caption{Tested neighbourhoods}
 \end{figure}
 \end{figure}
 
 
+We name these neighbourhoods respectively (8,3)-, (8,5)- and
+(12,5)-neighbourhoods, after the number of points we use and the diameter
+of the `circle´ on which these points lay.\\
+\\
 We chose these neighbourhoods to prevent having to use interpolation, which
 We chose these neighbourhoods to prevent having to use interpolation, which
 would add a computational step, thus making the code execute slower. In the
 would add a computational step, thus making the code execute slower. In the
 next section we will describe what the best neighbourhood was.
 next section we will describe what the best neighbourhood was.
@@ -391,7 +395,7 @@ are not significant enough to allow for reliable classification.
 The neighbourhood to use can only be determined through testing. We did a test
 The neighbourhood to use can only be determined through testing. We did a test
 with each of these neighbourhoods, and we found that the best results were
 with each of these neighbourhoods, and we found that the best results were
 reached with the following neighbourhood, which we will call the
 reached with the following neighbourhood, which we will call the
-(12, 5)-neighbourhood, since it has 12 points in a area with a diameter of 5.
+(12,5)-neighbourhood, since it has 12 points in a area with a diameter of 5.
 
 
 \begin{figure}[H]
 \begin{figure}[H]
 \center
 \center
@@ -459,27 +463,6 @@ $\gamma = 0.125$.
 The goal was to find out two things with this research: The speed of the
 The goal was to find out two things with this research: The speed of the
 classification and the accuracy. In this section we will show our findings.
 classification and the accuracy. In this section we will show our findings.
 
 
-\subsection{Speed}
-
-Recognizing license plates is something that has to be done fast, since there
-can be a lot of cars passing a camera in a short time, especially on a highway.
-Therefore, we measured how well our program performed in terms of speed. We
-measure the time used to classify a license plate, not the training of the
-dataset, since that can be done offline, and speed is not a primary necessity
-there.\\
-\\
-The speed of a classification turned out to be reasonably good. We time between
-the moment a character has been 'cut out' of the image, so we have a exact
-image of a character, to the moment where the SVM tells us what character it
-is. This time is on average $65$ ms. That means that this
-technique (tested on an AMD Phenom II X4 955 Quad core CPU running at 3.2 GHz)
-can identify 15 characters per second.\\
-\\
-This is not spectacular considering the amount of calculating power this cpu
-can offer, but it is still fairly reasonable. Of course, this program is
-written in Python, and is therefore not nearly as optimized as would be
-possible when written in a low-level language.
-
 \subsection{Accuracy}
 \subsection{Accuracy}
 
 
 Of course, it is vital that the recognition of a license plate is correct,
 Of course, it is vital that the recognition of a license plate is correct,
@@ -502,6 +485,35 @@ grid-searches, finding more exact values for $c$ and $\gamma$, more tests
 for finding $\sigma$ and more experiments on the size and shape of the 
 for finding $\sigma$ and more experiments on the size and shape of the 
 neighbourhoods.
 neighbourhoods.
 
 
+\subsection{Speed}
+
+Recognizing license plates is something that has to be done fast, since there
+can be a lot of cars passing a camera in a short time, especially on a highway.
+Therefore, we measured how well our program performed in terms of speed. We
+measure the time used to classify a license plate, not the training of the
+dataset, since that can be done offline, and speed is not a primary necessity
+there.\\
+\\
+The speed of a classification turned out to be reasonably good. We time between
+the moment a character has been 'cut out' of the image, so we have a exact
+image of a character, to the moment where the SVM tells us what character it
+is. This time is on average $65$ ms. That means that this
+technique (tested on an AMD Phenom II X4 955 CPU running at 3.2 GHz)
+can identify 15 characters per second.\\
+\\
+This is not spectacular considering the amount of calculating power this CPU
+can offer, but it is still fairly reasonable. Of course, this program is
+written in Python, and is therefore not nearly as optimized as would be
+possible when written in a low-level language.\\
+\\
+Another performance gain is by using one of the other two neighbourhoods.
+Since these have 8 points instead of 12 points, this increases performance
+drastically, but at the cost of accuracy. With the (8,5)-neighbourhood
+we only need 1.6 ms seconds to identify a character. However, the accuracy
+drops to $89\%$. When using the (8,3)-neighbourhood, the speedwise performance
+remains the same, but accuracy drops even further, so that neighbourhood
+is not advisable to use.
+
 \section{Conclusion}
 \section{Conclusion}
 
 
 In the end it turns out that using Local Binary Patterns is a promising
 In the end it turns out that using Local Binary Patterns is a promising