Skip to content
Snippets Groups Projects
Commit 585053fe authored by even's avatar even
Browse files

Article: nomeklatur

parent 9e49012c
No related branches found
No related tags found
No related merge requests found
......@@ -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(130,55){$\mu$}
\put(129,56){$\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}
......@@ -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
......
......@@ -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}
......
......@@ -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 (c1,c2), 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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment