Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
2
2019 FBSD
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
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
Show more breadcrumbs
Kerautret Bertrand
2019 FBSD
Commits
585053fe
Commit
585053fe
authored
6 years ago
by
even
Browse files
Options
Downloads
Patches
Plain Diff
Article: nomeklatur
parent
9e49012c
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
Article/Fig_notions/bswidth.tex
+4
-4
4 additions, 4 deletions
Article/Fig_notions/bswidth.tex
Article/intro.tex
+1
-1
1 addition, 1 deletion
Article/intro.tex
Article/method.tex
+28
-17
28 additions, 17 deletions
Article/method.tex
Article/notions.tex
+50
-73
50 additions, 73 deletions
Article/notions.tex
with
83 additions
and
95 deletions
Article/Fig_notions/bswidth.tex
+
4
−
4
View file @
585053fe
...
...
@@ -9,13 +9,13 @@
\put
(82.5,31)
{
\circle*
{
3
}}
\put
(90,36)
{
\circle*
{
3
}}
\put
(100,36)
{
\circle*
{
3
}}
\put
(
70
,35)
{$
\mathcal
{
B
}$}
\put
(
69
,35)
{$
\mathcal
{
B
}
_
i
$}
\put
(110,30)
{
\circle
{
3
}}
\put
(112,21)
{$
P
'
$}
\put
(112,21)
{$
P
_{
i
+
1
}
$}
\put
(140,36)
{
\vector
(0,1)
{
10
}}
\put
(140,62.66)
{
\vector
(0,-1)
{
10
}}
\put
(1
30
,5
5
)
{$
\mu
$}
\put
(1
29
,5
6
)
{$
\mu
_
i
$}
\put
(160,30)
{
\vector
(0,1)
{
10
}}
\put
(160,60)
{
\vector
(0,-1)
{
10
}}
\put
(164,
44
)
{$
\mu
'
$}
\put
(164,
39
)
{$
\mu
_{
i
+
1
}
$}
\end{picture}
This diff is collapsed.
Click to expand it.
Article/intro.tex
+
1
−
1
View file @
585053fe
...
...
@@ -23,7 +23,7 @@ in some application contexts, such as computer vision.
In digital geometry, the notion of blurred segment
\cite
{
DebledAl05,Buzer07
}
was introduced to cope with the image noise or other sources of
imperfections from the real world. The pre
-
image of that geometrical object,
imperfections from the real world. The preimage of that geometrical object,
ie the space of geometric entities which numerization matches this
blurred segment, may convey useful information to evaluate possible moves in
the 3D interpretations drawn, as a promising extension of former works
...
...
This diff is collapsed.
Click to expand it.
Article/method.tex
+
28
−
17
View file @
585053fe
...
...
@@ -14,47 +14,58 @@ in the following figure.
\put
(24,0)
{
\framebox
(56,30)
}
\put
(24,15)
{
\makebox
(56,10)
{
Initial
}}
\put
(24,3)
{
\makebox
(56,10)
{
detection
}}
\put
(86,18)
{
\scriptsize
$
S
_{
i
}$}
\put
(86,18)
{
\scriptsize
$
\mathcal
{
B
}
_{
1
}$}
\put
(80,15)
{
\vector
(1,0)
{
22
}}
%\put(102,0){\framebox(56,30)}
\multiput
(102,15)(28,9)
{
2
}{
\line
(3,-1)
{
28
}}
\multiput
(102,15)(28,-9)
{
2
}{
\line
(3,1)
{
28
}}
\put
(100,0)
{
\makebox
(60,30)
{
Valid ?
}}
\put
(133,-2)
{
\scriptsize
$
0
$}
\put
(133,-2)
{
\scriptsize
$
\emptyset
$}
\put
(130,6)
{
\vector
(0,-1)
{
10
}}
\put
(159,18)
{
\scriptsize
$
(
C,
\vec
{
D
}
)
$}
\put
(158,15)
{
\vector
(1,0)
{
28
}}
\put
(186,0)
{
\framebox
(56,30)
}
\put
(186,15)
{
\makebox
(56,10)
{
Fine
}}
\put
(186,3)
{
\makebox
(60,10)
{
tracking
}}
\put
(250,18)
{
\scriptsize
$
S
_{
f
}
$}
\put
(250,18)
{
\scriptsize
$
\mathcal
{
B
}_
2
$}
\put
(242,15)
{
\vector
(1,0)
{
24
}}
\put
(266,0)
{
\framebox
(56,30)
{
Filtering
}}
\put
(330,18)
{
\scriptsize
$
S
_{
o
}
$}
\put
(330,18)
{
\scriptsize
$
\mathcal
{
B
}_
3
$}
\put
(322,15)
{
\vector
(1,0)
{
22
}}
\end{picture}
\caption
{
The detection method work flow.
}
\label
{
fig:workflow
}
\end{figure}
The
fast track stage
consists in building and extending a blurred segment
$
S
_
i
$
based on the highest gradient points
on each line of the directional
scanner based on an input segment
$
AB
$
.
The
initial detection
consists in building and extending a blurred segment
$
\mathcal
{
B
}_
1
$
based on the highest gradient points
found in each scan
of a static directional
scanner based on an input segment
$
AB
$
.
Validity tests based on the length or sparsity of
$
S
_
i
$
are applied to
decide of the detection poursuit. In case of positive response, the
position and direction of this initial blurred segment is extracted.
Validity tests based on the length or sparsity of
$
\mathcal
{
B
}_
1
$
are
applied to decide of the detection poursuit. In case of positive response,
the position
$
C
$
and direction
$
\vec
{
D
}$
of this initial blurred segment
are extracted.
The fine track stage consists on building and extending a blurred segment
$
S
_
f
$
based on points that correspond to local maxima of the gradient,
ranked by magnitude order, and with gradient direction close to a reference
gradient direction at the segment first point.
The fine track step consists on building and extending a blurred segment
$
\mathcal
{
B
}_
2
$
based on points that correspond to local maxima of the
image gradient, ranked by magnitude order, and with gradient direction
close to a reference gradient direction at the segment first point.
This step uses an adaptive directional scanner to extends the segment
in appropriate direction.
During that step a thinning procedure is run :
the assigned width
of the BS
is progressively brought to
the detected
BS
minimal width.
the assigned width is progressively brought to
the detected
blurred segment
minimal width.
The fine track output segment is finally filtered to remove artifacts
and outliers, and a solution blurred segment
$
S
_
o
$
is provided.
and outliers, and a solution blurred segment
$
\mathcal
{
B
}_
3
$
is provided.
\subsection
{
The thinning process
}
\subsection
{
Multi-detection
}
Algo de multi-detection.
\subsection
{
Automatic detection
}
\subsection
{
Implementation details
}
...
...
This diff is collapsed.
Click to expand it.
Article/notions.tex
+
50
−
73
View file @
585053fe
...
...
@@ -7,11 +7,13 @@ defined in the digital geometry literature \cite{KletteRosenfeld04}.
Only the 2-dimensional case is considered here.
\begin{definition}
A digital line
$
\mathcal
{
L
}$
with integer parameters
$
(
a,b,c,
\nu
)
$
is the set
of points
$
P
(
x,y
)
$
of
$
\mathbb
{
Z
}^
2
$
that satisfy :
$
0
\leq
ax
+
by
-
c <
\nu
$
.
A digital line
$
\mathcal
{
L
}
(
a,b,c,
\nu
)
$
, with
$
(
a,b,c,
\nu
)
\in
\mathbb
{
Z
}^
4
$
,
is the set of points
$
P
(
x,y
)
$
of
$
\mathbb
{
Z
}^
2
$
that satisfy :
$
0
\leq
ax
+
by
-
c <
\nu
$
.
\end{definition}
The parameter
$
\nu
$
is the arithmetic width of the digital line.
$
b
/
a
$
is the slope of
$
\mathcal
{
L
}$
,
$
c
$
its intercept and
$
\nu
$
its arithmetic width.
When
$
\nu
=
max
(
|a|, |b|
)
$
,
$
\mathcal
{
L
}$
is the narrowest 8-connected
line and is called a naive line.
...
...
@@ -30,16 +32,17 @@ arithmetical width of the narrowest digital straight line that contains
$
\mathcal
{
B
}$
.
It is also the minimal width of the convex hull, that is computed by
Melkman's algorithm
\cite
{
Melkman87
}
.
The extension of the blurred segment with a new input point is thus
controlled by the recognition test
$
\mu
<
\varepsilon
$
.
The extension of the blurred segment
$
\mathcal
{
B
}_
i
$
of assigned width
$
\varepsilon
$
and minimal width
$
\mu
_
i
$
at step
$
i
$
with a new input point
$
P
_{
i
+
1
}$
is thus controlled by the recognition test
$
\mu
_{
i
+
1
}
<
\varepsilon
$
.
\begin{figure}
[h]
\center
\input
{
Fig
_
notions/bswidth
}
\caption
{
A growing blurred segment
$
\mathcal
{
B
}$
:
when adding the new point
$
P
'
$
, the blurred segment minimal width
augments
from
$
\mu
$
to
$
\mu
'
$
; if the new width
$
\mu
'
$
exceeds
the assigned width
$
\varepsilon
$
, then the new input point is rejected.
}
\caption
{
A growing blurred segment
$
\mathcal
{
B
}
_
i
$
:
when adding the new point
$
P
_{
i
+
1
}
$
, the blurred segment minimal width
augments
from
$
\mu
_
i
$
to
$
\mu
_{
i
+
1
}
$
; if the new width
$
\mu
_{
+
1
}
$
exceeds
the assigned width
$
\varepsilon
$
, then the new input point is rejected.
}
\label
{
fig:bs
}
\end{figure}
...
...
@@ -50,13 +53,15 @@ gradually decremented to reach the detected blurred segment minimal width.
\subsection
{
Directional scan
}
A directional scan is a partition of a digital straight line
$
\mathcal
{
S
}$
,
called the
{
\it
scan strip
}
, into naive straight line segments
$
\mathcal
{
L
}_
i
$
,
that are orthogonal to
$
\mathcal
{
S
}$
. The segments, called
{
\it
scan lines
}
,
are developed on each side of a central scan line
$
\mathcal
{
S
}_
0
$
, and labelled
with their manhattan distance (
$
d
_
1
=
|d
_
x|
+
|d
_
y|
$
) to
$
\mathcal
{
L
}_
0
$
and
a positive (resp. negative) sign if their are on the left (resp. right)
of
$
\mathcal
{
L
}_
0
$
.
A directional scan is a partition of a digital straight line
$
\mathcal
{
D
}$
,
called the
{
\it
scan strip
}
, into scans
$
S
_
i
$
, each of them being a
segment of a naive line
$
\mathcal
{
S
}_
i
$
orthogonal to
$
\mathcal
{
D
}$
.
\[
S
_
i
=
\mathcal
{
D
}
\cap
\mathcal
{
S
}_
i,
\mathcal
{
S
}_
i
\perp
\mathcal
{
D
}
\]
The scans
$
S
_
i
$
are developed on each side of a central scan
$
S
_
0
$
,
and labelled with their manhattan distance (
$
d
_
1
=
|d
_
x|
+
|d
_
y|
$
) to
the central line
$
\mathcal
{
S
}_
0
$
and a positive (resp. negative) sign
if their are on the left (resp. right) of
$
\mathcal
{
S
}_
0
$
.
\begin{figure}
[h]
\center
...
...
@@ -67,33 +72,19 @@ of $\mathcal{L}_0$.
\label
{
fig:ds
}
\end{figure}
The directional scan can be defined by its central scan
line
$
\mathcal
{
L
}
_
0
$
.
If
$
A
(
x
_
A,y
_
A
)
$
and
$
B
(
x
_
B,y
_
B
)
$
are the end points of
this scan line
,
The directional scan can be defined by its central scan
$
S
_
0
$
.
If
$
A
(
x
_
A,y
_
A
)
$
and
$
B
(
x
_
B,y
_
B
)
$
are the end points of
$
S
_
0
$
,
the scan strip is defined by :
\centerline
{
$
\mathcal
{
S
}
(
A,B
)
=
\mathcal
{
D
}
(
a, b, c,
\nu
)
$
, with
$
\left\{
\begin
{
array
}{
l
}
a
=
x
_
B
-
x
_
A
\\
b
=
y
_
B
-
y
_
A
\\
\nu
=
1
+
|c
_
2
-
c
_
1
|
\\
c
=
min
(
c
_
1
, c
_
2
)
\end
{
array
}
\right
.
$
}
\[
\mathcal
{
D
}
(
A,B
)
=
\mathcal
{
L
}
(
\delta
_
x,
\delta
_
y, min
(
c
1
,c
2
)
,
1
+
|c
_
1
-
c
_
2
|
)
\]
\noindent
where
$
c
_
1
=
a
\cdot
x
_
A
+
b
\cdot
y
_
A
$
and
$
c
_
2
=
a
\cdot
x
_
B
+
b
\cdot
y
_
B
$
.
The scan line
$
\mathcal
{
L
}_
i
(
A,B
)
$
is then defined by :
where
$
\delta
_
x
=
x
_
B
-
x
_
A,
\delta
_
y
=
y
_
B
-
y
_
A,
c
_
1
=
a
\cdot
x
_
A
+
b
\cdot
y
_
A
$
and
$
c
_
2
=
a
\cdot
x
_
B
+
b
\cdot
y
_
B
$
.
\centerline
{
$
\mathcal
{
L
}_
i
(
A,B
)
=
\mathcal
{
S
}
(
A,B
)
\cap
\mathcal
{
D
}
(
a', b', c',
\nu
'
)
$
, with
$
\left\{
\begin
{
array
}{
l
}
a'
=
y
_
B
-
y
_
A
\\
b'
=
x
_
A
-
x
_
B
\\
\nu
'
=
max
(
|a'|,|b'|
)
\\
c'
=
a'
\cdot
x
_
A
+
b'
\cdot
y
_
A
+
i
\cdot
\nu
'
\end
{
array
}
\right
.
$
}
The scan line
$
\mathcal
{
S
}_
i
$
is then defined by :
\[
\mathcal
{
S
}_
i
(
A,B
)
=
\mathcal
{
L
}
(
\delta
_
y,
-
\delta
_
x,
\delta
_
y
\cdot
x
_
A
-
\delta
_
X
\cdot
y
_
A
+
i
\cdot
\nu
_{
AB
}
,
\nu
_{
AB
}
)
\]
where
$
\nu
_{
AB
}
=
max
(
|
\delta
_
x|, |
\delta
_
y|
)
$
The scan lines length is
$
d
_
\infty
(
AB
)
$
or
$
d
_
\infty
(
AB
)-
1
$
, where
$
d
_
\infty
$
is the chessboard distance (
$
d
_
\infty
=
max
(
|d
_
x|,|d
_
y|
)
$
).
...
...
@@ -101,30 +92,15 @@ In practice, this difference of length between scan lines is not a drawback,
as the image bounds should also be processed anyway.
The directional scan can also be defined by its central point
$
C
(
x
_
C,y
_
C
)
$
,
its direction
$
\vec
{
D
}
(
x
_
D,y
_
D
)
$
and its width
$
w
$
:
\centerline
{
$
\mathcal
{
S
}
(
C,
\vec
{
D
}
,w
)
=
\mathcal
{
D
}
(
a, b, c,
\nu
)
$
, with
$
\left\{
\begin
{
array
}{
l
}
a
=
y
_
D
\\
b
=
-
x
_
D
\\
\nu
=
w
\\
c
=
a
\cdot
x
_
C
+
b
\cdot
y
_
C
-
w
/
2
\end
{
array
}
\right
.
$
}
and the scan line
$
\mathcal
{
L
}_
i
(
A,B
)
$
by :
\centerline
{
$
\mathcal
{
L
}_
i
(
C,
\vec
{
D
}
,w
)
=
\mathcal
{
S
}
(
C,
\vec
{
D
}
,w
)
\cap
\mathcal
{
D
}
(
a', b', c',
\nu
'
)
$
, with
$
\left\{
\begin
{
array
}{
l
}
a'
=
x
_
D
\\
b'
=
y
_
D
\\
\nu
'
=
max
(
|a'|,|b'|
)
\\
c'
=
a'
\cdot
x
_
C
+
b'
\cdot
y
_
C
-
w
/
2
+
i
\cdot
w
\end
{
array
}
\right
.
$
}
its direction
$
\vec
{
D
}
(
x
_
D,y
_
D
)
$
and its width
$
w
$
. The scan strip is :
\[
\mathcal
{
D
}
(
C,
\vec
{
D
}
,w
)
=
\mathcal
{
L
}
(
y
_
D,
-
x
_
D, x
_
C
\cdot
y
_
D
-
y
_
C
\cdot
x
_
D
-
w
/
2
, w
)
\]
and the scan line
$
\mathcal
{
S
}_
i
(
C,
\vec
{
D
}
,w
)
$
:
\[
\mathcal
{
S
}_
i
(
C,
\vec
{
D
}
,w
)
=
\mathcal
{
L
}
(
x
_
D, y
_
D,
x
_
D
\cdot
x
_
C
+
y
_
D
\cdot
y
_
C
-
w
/
2
+
i
\cdot
w,
max
(
|x
_
D|,|y
_
D|
)
\]
\subsection
{
Adaptive directional scan
}
...
...
@@ -161,9 +137,9 @@ This side shift is amplified when we let the blurred segment the capacity
to get thicker in order to capture possible noisy features.
The assigned width is then still greater than the detected minimal width,
so that the segment can move within the directional scan.
Knowing the detected
BS
shape and the image size, it is
possible to
define a conic scan area, but this solution is computationaly
expensive
because it leads to useless exploration of large image areas.
Knowing the detected
blurred segment
shape and the image size, it is
possible to
define a conic scan area, but this solution is computationaly
expensive
because it leads to useless exploration of large image areas.
\begin{figure}
[h]
\center
...
...
@@ -182,7 +158,7 @@ found at the former step.
This process could be itered as long as the blurred segment escapes from
the directional scanner using as any detection steps as necessary.
But it produces a useless computational coast, because of the margin left,
but also the multiple detection of the same segment start points.
but also
of
the multiple detection of the same segment start points.
\begin{figure}
[h]
\center
...
...
@@ -194,8 +170,9 @@ but also the multiple detection of the same segment start points.
\end{figure}
The solution we propose here is to dynamically adapt the scan direction
on the detection result. At each position, the scan strip is updated
using the BS direction and minimal width computed at the former position,
that is :
\[
\mathcal
{
S
}_
i
=
\mathcal
{
L
}_
0
\cup
\mathcal
{
D
}_{
i
-
1
}\]
on the detection result. At each position
$
i
$
, the scan strip is updated
using the direction and minimal width of the blurred segment computed
at the former position
$
i
-
1
$
, that is :
\[
S
_
i
=
\mathcal
{
D
}
\cap
\mathcal
{
S
}_{
i
-
1
}
\]
Compared to static directional scans, the scan strip varies while the
scan lines remain fixed.
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