|
@@ -39,8 +39,8 @@ Microsoft recently published a new and effective method to find the location of
|
|
|
text in an image.
|
|
text in an image.
|
|
|
|
|
|
|
|
Determining what character we are looking at will be done by using Local Binary
|
|
Determining what character we are looking at will be done by using Local Binary
|
|
|
-Patterns. The main goal of our research is finding out how effective LBPs are
|
|
|
|
|
-in classifying characters on a licenseplate.
|
|
|
|
|
|
|
+Patterns. The main goal of our research is finding out how effective LBP's are
|
|
|
|
|
+in classifying characters on a license plate.
|
|
|
|
|
|
|
|
In short our program must be able to do the following:
|
|
In short our program must be able to do the following:
|
|
|
|
|
|
|
@@ -145,9 +145,9 @@ stored in XML files. So, the first step is to read these XML files.\\
|
|
|
|
|
|
|
|
|
|
|
|
|
\paragraph*{Perspective transformation}
|
|
\paragraph*{Perspective transformation}
|
|
|
-Once we retrieved the cornerpoints of the licenseplate, we feed those to a
|
|
|
|
|
-module that extracts the (warped) licenseplate from the original image, and
|
|
|
|
|
-creates a new image where the licenseplate is cut out, and is transformed to a
|
|
|
|
|
|
|
+Once we retrieved the cornerpoints of the license plate, we feed those to a
|
|
|
|
|
+module that extracts the (warped) license plate from the original image, and
|
|
|
|
|
+creates a new image where the license plate is cut out, and is transformed to a
|
|
|
rectangle.
|
|
rectangle.
|
|
|
|
|
|
|
|
\subsection{Noise reduction}
|
|
\subsection{Noise reduction}
|
|
@@ -157,11 +157,11 @@ etc., as from dirt on the license plate. In this case, noise therefore means
|
|
|
any unwanted difference in color from the surrounding pixels.
|
|
any unwanted difference in color from the surrounding pixels.
|
|
|
|
|
|
|
|
\paragraph*{Camera noise and small amounts of dirt}
|
|
\paragraph*{Camera noise and small amounts of dirt}
|
|
|
-The dirt on the licenseplate can be of different sizes. We can reduce the
|
|
|
|
|
|
|
+The dirt on the license plate can be of different sizes. We can reduce the
|
|
|
smaller amounts of dirt in the same way as we reduce normal noise, by applying
|
|
smaller amounts of dirt in the same way as we reduce normal noise, by applying
|
|
|
-a gaussian blur to the image. This is the next step in our program.\\
|
|
|
|
|
|
|
+a Gaussian blur to the image. This is the next step in our program.\\
|
|
|
\\
|
|
\\
|
|
|
-The gaussian filter we use comes from the \texttt{scipy.ndimage} module. We use
|
|
|
|
|
|
|
+The Gaussian filter we use comes from the \texttt{scipy.ndimage} module. We use
|
|
|
this function instead of our own function, because the standard functions are
|
|
this function instead of our own function, because the standard functions are
|
|
|
most likely more optimized then our own implementation, and speed is an
|
|
most likely more optimized then our own implementation, and speed is an
|
|
|
important factor in this application.
|
|
important factor in this application.
|
|
@@ -179,7 +179,7 @@ surrounding the character.
|
|
|
|
|
|
|
|
The retrieval of the character is done the same as the retrieval of the license
|
|
The retrieval of the character is done the same as the retrieval of the license
|
|
|
plate, by using a perspective transformation. The location of the characters on
|
|
plate, by using a perspective transformation. The location of the characters on
|
|
|
-the licenseplate is also available in de XML file, so this is parsed from that
|
|
|
|
|
|
|
+the license plate is also available in de XML file, so this is parsed from that
|
|
|
as well.
|
|
as well.
|
|
|
|
|
|
|
|
\subsection{Creating Local Binary Patterns and feature vector}
|
|
\subsection{Creating Local Binary Patterns and feature vector}
|
|
@@ -200,12 +200,12 @@ available. These parameters are:\\
|
|
|
\begin{tabular}{l|l}
|
|
\begin{tabular}{l|l}
|
|
|
Parameter & Description\\
|
|
Parameter & Description\\
|
|
|
\hline
|
|
\hline
|
|
|
- $\sigma$ & The size of the gaussian blur.\\
|
|
|
|
|
|
|
+ $\sigma$ & The size of the Gaussian blur.\\
|
|
|
\emph{cell size} & The size of a cell for which a histogram of LBPs will
|
|
\emph{cell size} & The size of a cell for which a histogram of LBPs will
|
|
|
be generated.\\
|
|
be generated.\\
|
|
|
$\gamma$ & Parameter for the Radial kernel used in the SVM.\\
|
|
$\gamma$ & Parameter for the Radial kernel used in the SVM.\\
|
|
|
$c$ & The soft margin of the SVM. Allows how much training
|
|
$c$ & The soft margin of the SVM. Allows how much training
|
|
|
- errors are excepted.
|
|
|
|
|
|
|
+ errors are accepted.
|
|
|
\end{tabular}\\
|
|
\end{tabular}\\
|
|
|
\\
|
|
\\
|
|
|
For each of these parameters, we will describe how we searched for a good
|
|
For each of these parameters, we will describe how we searched for a good
|
|
@@ -225,10 +225,10 @@ that this was $\sigma = ?$.
|
|
|
The cell size of the Local Binary Patterns determines over what region a
|
|
The cell size of the Local Binary Patterns determines over what region a
|
|
|
histogram is made. The trade-off here is that a bigger cell size makes the
|
|
histogram is made. The trade-off here is that a bigger cell size makes the
|
|
|
classification less affected by relative movement of a character compared to
|
|
classification less affected by relative movement of a character compared to
|
|
|
-those in the learningset, since the important structure will be more likely to
|
|
|
|
|
|
|
+those in the learning set, since the important structure will be more likely to
|
|
|
remain in the same cell. However, if the cell size is too big, there will not
|
|
remain in the same cell. However, if the cell size is too big, there will not
|
|
|
be enough cells to properly describe the different areas of the character, and
|
|
be enough cells to properly describe the different areas of the character, and
|
|
|
-the featurevectors will not have enough elements.\\
|
|
|
|
|
|
|
+the feature vectors will not have enough elements.\\
|
|
|
\\
|
|
\\
|
|
|
In order to find this parameter, we used a trial-and-error technique on a few
|
|
In order to find this parameter, we used a trial-and-error technique on a few
|
|
|
basic cell sizes, being ?, 16, ?. We found that the best result was reached by
|
|
basic cell sizes, being ?, 16, ?. We found that the best result was reached by
|
|
@@ -257,15 +257,15 @@ We found that the best values for these parameters are $c=?$ and $\gamma =?$.
|
|
|
|
|
|
|
|
\section{Results}
|
|
\section{Results}
|
|
|
|
|
|
|
|
-The wanted 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}
|
|
\subsection{Speed}
|
|
|
|
|
|
|
|
-Recognizing license plates is something that has to be done with good speed,
|
|
|
|
|
-since there can be a lot of cars passing a camera, especially on a highway.
|
|
|
|
|
|
|
+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
|
|
Therefore, we measured how well our program performed in terms of speed. We
|
|
|
-measure the time used to classify a license plate, not the trainign of the
|
|
|
|
|
|
|
+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
|
|
dataset, since that can be done offline, and speed is not a primary necessity
|
|
|
there.\\
|
|
there.\\
|
|
|
\\
|
|
\\
|
|
@@ -275,13 +275,13 @@ The speed of a classification turned out to be blablabla.
|
|
|
|
|
|
|
|
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,
|
|
|
almost correct is not good enough here. Therefore, we have to get the highest
|
|
almost correct is not good enough here. Therefore, we have to get the highest
|
|
|
-accuracy score we possibly can. According to Wikipedia
|
|
|
|
|
|
|
+accuracy score we possibly can.\\
|
|
|
|
|
+\\ According to Wikipedia
|
|
|
\footnote{
|
|
\footnote{
|
|
|
\url{http://en.wikipedia.org/wiki/Automatic_number_plate_recognition}},
|
|
\url{http://en.wikipedia.org/wiki/Automatic_number_plate_recognition}},
|
|
|
commercial license plate recognition software score about $90\%$ to $94\%$,
|
|
commercial license plate recognition software score about $90\%$ to $94\%$,
|
|
|
-under optimal conditions and with modern equipment.\\
|
|
|
|
|
-\\
|
|
|
|
|
-Our program scores an average of blablabla.
|
|
|
|
|
|
|
+under optimal conditions and with modern equipment. Our program scores an
|
|
|
|
|
+average of blablabla.
|
|
|
|
|
|
|
|
\section{Conclusion}
|
|
\section{Conclusion}
|
|
|
|
|
|