Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
licenseplates
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
Taddeüs Kroes
licenseplates
Commits
3312cd28
Commit
3312cd28
authored
13 years ago
by
Taddeus Kroes
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' of github.com:taddeus/licenseplates
parents
1a203e67
ea023780
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/report.tex
+31
-11
31 additions, 11 deletions
docs/report.tex
with
31 additions
and
11 deletions
docs/report.tex
+
31
−
11
View file @
3312cd28
...
...
@@ -113,7 +113,7 @@ part of the license plate remains readable.
Once we have separate digits and characters, we intent to use Local Binary
Patterns (Ojala, Pietikäinen
\&
Harwood, 1994) to determine what character
or digit we are dealing with. Local Binary
Patters are a way to classify a texture based on the distribution of edge
Patter
n
s are a way to classify a texture based on the distribution of edge
directions in the image. Since letters on a license plate consist mainly of
straight lines and simple curves, LBP should be suited to identify these.
...
...
@@ -139,15 +139,16 @@ the value of the evaluated pixel is greater than the threshold, shift the bit
by the n(with i=i
$_{
th
}$
pixel evaluated, starting with
$
i
=
0
$
).
This results in a mathematical expression:
Let I(
$
x
_
i, y
_
i
$
) an Image with grayscale values and
$
g
_
n
$
the grayscale value
of the pixel
$
(
x
_
i, y
_
i
)
$
. Also let
$
s
(
g
_
i
-
g
_
c
)
$
with
$
g
_
c
$
= grayscale value
of the center pixel.
of the pixel
$
(
x
_
i, y
_
i
)
$
. Also let
$
s
(
g
_
i
,
g
_
c
)
$
(see below)
with
$
g
_
c
$
= grayscale value
of the center pixel
and
$
g
_
i
$
the grayscale value of the pixel to be evaluated
.
$$
s
(
v
, g
_
c
)
=
\left\{
s
(
g
_
i
, g
_
c
)
=
\left\{
\begin
{
array
}{
l l
}
1
&
\quad
\text
{
if
v
$
\geq
$ $g
_
c$
}
\\
0
&
\quad
\text
{
if
v
$<$ $g
_
c$
}
\\
1
&
\quad
\text
{
if
$g
_
i$
$
\geq
$ $g
_
c$
}
\\
0
&
\quad
\text
{
if
$g
_
i$
$<$ $g
_
c$
}
\\
\end
{
array
}
\right
.
$$
...
...
@@ -171,7 +172,7 @@ order. Starting with dividing the pattern in to cells of size 16.
result is a feature vector of the image.
\item
Feed these vectors to a support vector machine. This will ''learn'' which
vector
s
indicate what
let
ter.
vector indicate
s
what
vector is which charac
ter.
\end{itemize}
...
...
@@ -271,8 +272,27 @@ characters will still be conserved in the LBP, even if there is dirt
surrounding the character.
\subsection
{
Creating Local Binary Patterns and feature vector
}
Every pixel is a center pixel and it is also a value to evaluate but not at the
same time. Every pixel is evaluated as shown in the explanation
of the LBP algorithm. The 8 neighbours around that pixel are evaluated, of course
this area can be bigger, but looking at the closes neighbours can give us more
information about the patterns of a character than looking at neighbours
further away. This form is the generic form of LBP, no interpolation is needed
the pixels adressed as neighbours are indeed pixels.
Take an example where the
full square can be evaluated, there are cases where the neighbours are out of
bounds. The first to be checked is the pixel in the left
bottom corner in the square 3 x 3, with coordinate
$
(
x
-
1
, y
-
1
)
$
with
$
g
_
c
$
as center pixel that has coordinates
$
(
x, y
)
$
. If the grayscale value of the
neighbour in the left corner is greater than the grayscale
value of the center pixel than return true. Bitshift the first bit with 7. The
outcome is now 1000000. The second neighbour will be bitshifted with 6, and so
on. Until we are at 0. The result is a binary pattern of the local point just
evaluated.
Now only the edge pixels are a problem, but a simpel check if the location of
the neighbour is still in the image can resolve this. We simply return false if
it is.
\subsection
{
Classification
}
...
...
@@ -419,8 +439,8 @@ to read and parse the given xml files with information about the license
plates. Upon completion all kinds of learning and data sets could be created.
%Richard je moet even toevoegen wat je hebt gedaan :P:P
%maar miss is dit hele ding wel overbodig
.
Ik dacht dat Rein het zei tijdens
%gesprek van ik wil weten hoe het ging enzo
%maar miss is dit hele ding wel overbodig Ik dacht dat Rein het zei tijdens
%gesprek van ik wil weten hoe het ging enzo
.
\subsection
{
How it went
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment