From 665dbbbc715073dccb3b95cadfd32d900d842962 Mon Sep 17 00:00:00 2001 From: evenp <Philippe.Even@loria.fr> Date: Tue, 1 Dec 2020 16:18:44 +0100 Subject: [PATCH] Notions rewrited --- Ipol/paper/Algos/algoFinal.tex | 16 +-- Ipol/paper/Algos/algoInitial.tex | 5 +- Ipol/paper/Algos/algoSingle.tex | 6 +- Ipol/paper/algos.tex | 26 ++--- Ipol/paper/article.tex | 8 +- Ipol/paper/figures/ads.pdf | Bin 0 -> 12350 bytes Ipol/paper/figures/bs.pdf | Bin 0 -> 2228 bytes Ipol/paper/figures/ds.pdf | Bin 0 -> 13185 bytes Ipol/paper/figures/dsl.pdf | Bin 0 -> 3091 bytes Ipol/paper/notions.tex | 190 +++++++++++++++++++++++++++---- 10 files changed, 199 insertions(+), 52 deletions(-) create mode 100644 Ipol/paper/figures/ads.pdf create mode 100644 Ipol/paper/figures/bs.pdf create mode 100644 Ipol/paper/figures/ds.pdf create mode 100644 Ipol/paper/figures/dsl.pdf diff --git a/Ipol/paper/Algos/algoFinal.tex b/Ipol/paper/Algos/algoFinal.tex index f62c877..31802f5 100644 --- a/Ipol/paper/Algos/algoFinal.tex +++ b/Ipol/paper/Algos/algoFinal.tex @@ -7,7 +7,6 @@ \SetKwData{dsd}{$\vec{V}_0$} \SetKwData{dirn}{$\vec{V}_G$} \SetKwData{dire}{$\vec{V}_E$} -\SetKwData{dst}{$W_0$} \SetKwData{ath}{$\varepsilon$} %\SetKwData{on}{isExtending} %\SetKwData{nb}{$n_E$} @@ -47,21 +46,22 @@ \SetKwFunction{rempt}{removePoint} \SetKwFunction{thickness}{thickness} \SetKwFunction{setath}{setMaxThickness} -\SetKwFunction{ang}{angle} +\SetKwFunction{ang}{$\angle$} \SetKwFunction{dir}{direction} \SetKwFunction{alignds}{alignScanner} \SetKwFunction{centerline}{centerLine} \Input{gradient magnitude map \gmap, gradient orientation map \vmap, - directional scan center \dsc, direction \dsd and thickness \dst, - initial assigned thickness \ath, edge gradient direction \dire} + directional scan center \dsc and direction \dsd, + maximal thickness \ath, reference edge gradient direction \dire, + maximal amount of successive detection fails \imax} \Output{a detected blurred segment \bs} \bs \takes $\emptyset$\; \dirn \takes \ortho(\dsd, \dire) \Comment*{Gets test gradient direction: \dirn $\perp$ \dsd, \dirn$\cdot$\dire $> 0$} -\ds \takes \getads (\dsc, \dsd, \dst) \Comment*{Gets an ADS from input scan.} +\ds \takes \getads (\dsc, \dsd, 2\ath) \Comment*{Gets an ADS from input scan.} \scan \takes \fscan (\ds)\; \index \takes \locmax (\scan, \gmap, \gdiff, \vmap, \dirn) \Comment*{Gets index of pixels with oriented gradient local max.} @@ -75,16 +75,16 @@ \While{\ninter $-$ \ntemp $\neq$ (\imax, \imax)}{ \nb \takes \nb $+$ $1$\; \bsth \takes \thickness(\bs)\; - \If{\pinchcount = \pinchdelay}{ + \If{\pinchcount $=$ \pinchdelay}{ \setath (\bs, \max (\ath, \thickness(\bs) + \half))\; } \If{\nb $>$ \adsdelay}{ - \If{\nb = \adsdelay $+$ $1$ and \angle(\dir(\bs),\dsd) $>$ \devang}{ + \If{\nb $=$ \adsdelay $+$ $1$ and \ang(\dir(\bs),\dsd) $>$ \devang}{ \niside \takes \ntside $+$ (\imax, \imax) \Comment*{Too large deviation} } \alignds(\ds,\centerline(\bs)) - \Comment*{Aligns scan stripe on blurred segment.} + \Comment*{Aligns scan strip on blurred segment.} } \ForEach{\side}{ \If{\niside $-$ \ntside $\leq$ \imax}{ diff --git a/Ipol/paper/Algos/algoInitial.tex b/Ipol/paper/Algos/algoInitial.tex index 9bf3e43..aa1cafe 100644 --- a/Ipol/paper/Algos/algoInitial.tex +++ b/Ipol/paper/Algos/algoInitial.tex @@ -28,8 +28,9 @@ \SetKwFunction{bsinit}{initializeBlurredSegment} \SetKwFunction{addpt}{addPoint} -\Input{gradient magnitude map \gmap, - input segment \is, assigned thickness \ath} +\Input{gradient magnitude map \gmap, input segment \is, + maximal thickness \ath, + maximal amount of successive detection fails \imax} \Output{a detected blurred segment \bs} \bs \takes $\emptyset$\; diff --git a/Ipol/paper/Algos/algoSingle.tex b/Ipol/paper/Algos/algoSingle.tex index ff7163b..85f378c 100644 --- a/Ipol/paper/Algos/algoSingle.tex +++ b/Ipol/paper/Algos/algoSingle.tex @@ -9,7 +9,7 @@ \SetKwData{crossang}{$\alpha_{min}$} \SetKwData{vecbs}{$\vec{D}$} \SetKwData{nb}{$n$} -\SetKwData{ang}{$angle$} +\SetKwData{ang}{$\angle$} \SetKwData{bsstart}{$P$} \SetKwData{dire}{$\vec{V}_E$} \SetKwData{centerpt}{$C$} @@ -45,8 +45,8 @@ }{ \bsstart \takes \startpt (\bs)\; \dire \takes \vmap $[$ \bsstart $]$\; - \centerpt \takes \centerline (\bs) $\cup$ \is\; - \bs \takes \finetrack (\gmap, \vmap, \centerpt, \vecbs, $2$ \ath, \ath, \dire) + \centerpt \takes \centerline (\bs) $\cap$ \is\; + \bs \takes \finetrack (\gmap, \vmap, \centerpt, \vecbs, \ath, \dire) \Comment*{Runs fine tracking.} \If{\size (\bs) $<$ \minsize}{ \bs \takes $\emptyset$ \Comment*{Not enough points.} diff --git a/Ipol/paper/algos.tex b/Ipol/paper/algos.tex index 8867825..b671b8d 100644 --- a/Ipol/paper/algos.tex +++ b/Ipol/paper/algos.tex @@ -28,15 +28,12 @@ Further extension is considered as useless. On each side, the process stops after a fixed amount of successive extension fails. -\input{Algos/algoInitial} - -Three parameters are used in this step: +Two parameters are used in this step: a minimal gradient magnitude $G_{min}$ to select candidates, -a maximal extent $N_E$ of the blurred segment, -and a maximal count $N_I$ of successive extent fails. -Nominal values are proposed for $G_{min}$ and $N_E$. -$N_I$ is set to a default value, -that can be adjusted according to the application context. +a maximal extent $N_E$ of the blurred segment. +Nominal values are proposed for them. + +\input{Algos/algoInitial} \subsection{Fine tracking step of single extraction} @@ -48,13 +45,11 @@ maxima of gradient magnitude found in the scan are tested untill a valid one is found. Moreover the gradient orientation is checked when selecting candidate points, using a rather strict maximal deviation value. In order to avoid early stops when the detected segment escapes from the -scan stripe, the directional scanner is aligned on the blurred segment +scan strip, the directional scanner is aligned on the blurred segment center line at each step. This alignment is only performed after a predefined number of steps when the blurred segment direction gets stable enough. -\input{Algos/algoFinal} - Moreover when the growing segment stops thickenning, the assigned maximal thickness of the recognition algorithm is pinched to a near value to the observed thickness. This pinch procedure avoids further inclusion of @@ -66,10 +61,12 @@ Finally, when any extension fail occurs, the amount of later successful extensions must coincide to the fail count to validate these points. This condition helps to detect more accurate segment ends. -Three new parameters are used in this step: +\input{Algos/algoFinal} + +Three parameters are used in this step: a gradient height $\delta_G$ to discriminate local gradient maxima, a minimal count $N_P$ of successive extents without blurred segment thickening, -and a minimal extent $N_A$ before recentering the scan stripe. +and a minimal extent $N_A$ before recentering the scan strip. Nominal values are proposed for all of them. \subsection{Single blurred segment extraction} @@ -77,6 +74,9 @@ Nominal values are proposed for all of them. The blurred segment extraction calls the initial detection, then the fine tracking steps and applies optional validation tests to the output segment. It is detailed in algorithm~/ref{algo:single}. +Parameters are the maximal thickness $\varepsilon$ assigned to the blurred +recognition algorithm, and the maximal amount $N_I$ of successive detection +fail accepted. \input{Algos/algoSingle} diff --git a/Ipol/paper/article.tex b/Ipol/paper/article.tex index f971cf0..d004fcc 100644 --- a/Ipol/paper/article.tex +++ b/Ipol/paper/article.tex @@ -50,7 +50,7 @@ \SetCommentSty{mycmtsty} % Use \newtheorem{} for remarks and definitions. -\usepackage{amsthm} +\usepackage{amsthm,amssymb} \newtheorem{definition}{Definition} \newtheorem*{remark}{Remark} @@ -160,9 +160,9 @@ Compilation and execution instruction are included in the %------------------------------------------------------------------------------ \section*{Acknowledgement} -This work was originated in the scope of the French GeoDib ANR project -("{\it G\'eom\'etrie des objets discrets bruit\'es}") held from 2006 to 2009 -and aiming at developing theoretical notions and algorithms to process noisy +This work is a long-term outcome of French GeoDib ANR project +("{\it G\'eom\'etrie des objets discrets bruit\'es}") held from 2006 to 2009, +aiming at developing theoretical notions and algorithms to process noisy discrete objects. %------------------------------------------------------------------------------ diff --git a/Ipol/paper/figures/ads.pdf b/Ipol/paper/figures/ads.pdf new file mode 100644 index 0000000000000000000000000000000000000000..75cdc2b002d321bfdf6ebdc987c04946f87e4b4b GIT binary patch literal 12350 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 literal 0 HcmV?d00001 diff --git a/Ipol/paper/figures/bs.pdf b/Ipol/paper/figures/bs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..445277891f872c5132a4bfc7bcc3d6a9cc772c5d GIT binary patch literal 2228 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 BW?%pS literal 0 HcmV?d00001 diff --git a/Ipol/paper/figures/ds.pdf b/Ipol/paper/figures/ds.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bb25b61f799ab732ce2c489e283f7d9045d6ff10 GIT binary patch literal 13185 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	wPksGYO@zZ&zm z#3%Yst(9T*fI@5??f;Z)<o*wq0ysgPP5zNYVOnA)E*3^6U`dfb@Ndglz$T7%&QK#0 zN5G$+1plj@e_HTQRL1|d)A5fji;RV_Bdk4tx&r*)x;y`A_P-o({>y<P)Xv!12o}dd zYXq@?+5v#fKu%^>0Ij)`lf5G^3v4`K)C>x-H@7fyWVVBv(a}8>Bnpf2aI&zo75g)! zv|_w$tZcBpV~6cIxLJV=tUwx8R=R(c$@Q-?|5jQQ;smj_Gkfy(XP_MaGc^A@pl(nT zQzTXZHxlcAHvlIH#0~<O0{$`}8y71N;3*ei`(MVv1uN~(_AkcH3G2rH!(ajscJcln z24rJr|Ns4QalwZD|Iy>-fn78IFefO)!rBD-6epu>;b8)+@}I!~+u1n*{xtmW6(eP9 fY6tk!_fLcA=mdc}J+%<X#>2seL`5a8Ac6Eh^;;;l literal 0 HcmV?d00001 diff --git a/Ipol/paper/figures/dsl.pdf b/Ipol/paper/figures/dsl.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f808b05851bb98646a4b3c1e3ecca8d268530024 GIT binary patch literal 3091 zcmZWrc|4SB8$L&iOxCnes#o@P7Gum{=rs0qjK<Dsj4=ioW=3XA>5J?ll<kOYSx=(0 zh?K3>F8U%%HN_OEg9!D#Lpq)BJiqt%zVCBA_w(HMbzjdPmlEE@Obf293sI_@y1WEI z0x*E??GG_D1fVvQAS%lb&;=m^1ONc287+`SVSwL25{qI&A=7;*5F;Z9lf|HrjzZYE z=UuTWnm44LENUpDf{Wy1^UJqw*ev%zTuiuGMy2I!Bvts!(&g#PZ^S<b<#%nH9T`Y_ z;rY~598-C7@4{!TmnkEkbNW)-kFD&y6HTUL^WpUU#>>2vAqnICL(p&cijNN%zMSWx zuN#jyos4c;*(;qgwO^ioa^%iYhpo@@AGptZ4WaPmflWta@C$O3rO>5!^NtIWQe7(z z(UK9y%6qM4o4-l*W$K?EO~E*0-a5~|Cfa{Z$gAb6{odo~gym_3^D9atOzqw0uG!Bn z&oHmG^+I+&iWOamJ5*!E%EX+mzBh+CPqr?Lur^uP-C)Dow^gBea4fX&4(z~jF)!su z0V$svwenA8#y@&q#GpT>j!_Eh=gUThKFP8#_)R%9-r(uXAROGe{nJMmMH_7T2lvf! z-HkS6Y_V@~@vk1bFY)aw#RyUI$fz^JDpjTYeS!>kIgr}ABI9{|pul}$n2EWOH&5tu zdLD7?h2P>6`-$ff+w}=5DGKtkTTi(8yq9thdtV+ucJr-6iG@|^tXh8BoD65v;VMfc zr#y7*{X+4<9`h(xMVzQ&oW$}wEr}eKb(Xg}{u?(AO}sNHTep9{E4vHPIW^U?>*^bK zDEIx4d&<&;EO8Wn{Z;(zrBG>pry7SIGLtx9cOg=t<H+4n+K2nk@(5l-#>P&IA0_HV zeWBtdUsobzT6Zp<te2lG8?Y;EENy6{WU&vttufck)+;vJlg7AK;OQz~b)u3hhcl*T zt6kzZjL}TS9liSA&hm|{(y5=y9Fn(2h0<>c<<b&e&L2HU!o)@e;F_$%vOZ^d�Q_ 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 literal 0 HcmV?d00001 diff --git a/Ipol/paper/notions.tex b/Ipol/paper/notions.tex index 3afa12d..8e4a8c9 100644 --- a/Ipol/paper/notions.tex +++ b/Ipol/paper/notions.tex @@ -1,26 +1,172 @@ -\section{Required notions of discrete geometry} +\section{Used notions of discrete geometry} -Nouveau rappel des notions de geo discrete indispensables pour comprendre -les algos : -\begin{itemize} -\item Discrete straight line -\begin{itemize} -\item{Thickness $\mu$} -\end{itemize} -\item Blurred segment +In this section, the main notions of discrete geometry used in the +framework are briefly recalled. + +A \textbf{digital straight line} $\mathcal{L}(a,b,c,\nu)$ is the set of +points $p=(x,y) \in \mathbb{Z}^2$, such that: +\begin{equation} +0 \leq ax + by - c < \nu, \mbox{ with } (a,b,c,\nu) \in \mathbb{Z}^4 +\end{equation} +The example of $\mathcal{L}(7,5,45,18)$ is given in \RefFig{fig:bs}(a). +In this work, we use the following notations: \begin{itemize} -\item{Assigned thickness} -\item{Optimal line} -\item{Main lines of the recognition algorithm} -\end{itemize} -\item Directional scanner -\item Adaptive directional scanner +\item director vector: $\vec{V}(\mathcal{L}) = (a,b)$ +\item arithmetical width: $W(\mathcal{L}) = \nu$ +\item shift to origin: $H(\mathcal{L}) = c$ +\item period: $P(\mathcal{L}) = max(|a|,|b|)$ +\item lower bounding line: +$L(\mathcal{L}) = \left\{(x',y')\in\mathbb{R}^2~|~ax'+by'=c\right\}$ +\item upper bounding line: +$U(\mathcal{L}) = \left\{(x',y')\in\mathbb{R}^2~|~ax'+by'=c+\nu-1\right\}$ +\item thickness: +$T(\mathcal{L}) += \frac{\textstyle W(\mathcal{L})-1}{\textstyle P(\mathcal{L})}$. \end{itemize} +The thickness corresponds to the lowest value of the vertical and horizontal +distances between lower and upper bounding lines. +When $\nu = P(\mathcal{L})$, then $\mathcal{L}$ is the thinest 8-connected +line and is called a \textit{naive line}. + +\begin{figure}[!htbp] +\begin{center} + \begin{picture}(1,5)(0,0) +% \put(0,0){\framebox(1,5)} + \end{picture} + \includegraphics[width=0.45\linewidth]{figures/dsl.pdf} + \begin{picture}(20,5)(0,0) +% \put(0,0){\framebox(10,5)} + \put(-232,2){$O$} + \put(-12,2){$x$} + \put(-232,222){$y$} + \put(-115,-6){$a$} + \end{picture} + \includegraphics[width=0.45\textwidth]{figures/bs.pdf} + \begin{picture}(1,5)(0,0) +% \put(0,0){\framebox(1,5)} + \put(-232,2){$O$} + \put(-12,2){$x$} + \put(-232,222){$y$} + \put(-115,-5){$b$} + \end{picture} + \caption{(a) Digital straight line $\mathcal{L}(7,5,45,18)$. + (b) Blurred segment of assigned thickness + $\varepsilon = \frac{17}{7}$, with convex hull in dashed + lines and optimal line $\mathcal{L}(7,5,45,18)$.} + \label{fig:bs} +\end{center} +\end{figure} + +A \textbf{digital straight segment} is a subset of a digital straight line +restricted to $\left\{x~|~x\in [x_{min},x_{max}]\right\}$ if $|a|<|b|$, +to $\left\{y~|~y\in [y_{min},y_{max}]\right\}$ otherwise. + +A \textbf{blurred segment} \cite{DebledAl06} $\mathcal{B}$ of assigned +thickness $\varepsilon$ is a set of points in $\mathbb{Z}^2$ that belong +to a digital straight line $\mathcal{L}$ of thickness +$T(\mathcal{L}) \leq \varepsilon$ (see \RefFig{fig:bs}(b)). +$\mathcal{L}$ is a \textit{covering line} of $\mathcal{B}$. +The covering line with minimal thickness is called the +\textit{optimal line} of $\mathcal{B}$. +The thickness $T(\mathcal{B})$ of the blurred segment is the thickness +of its optimal line. + +The blurred segment detection is based on a grawing procedure where input +points are sequentially added and tested using a linear-time incremental +recognition algorithm \cite{DebledAl06}. This algorithm relies on the +maintenance of the blurred segment convex hull. + +A \textbf{directional scan} $\Delta_S$ is an ordered partition of the grid +domain $\mathcal{G} \subset \mathbb{Z}^2$ restricted to a thick digital +straight line $\mathcal{D}$, called \textit{scan strip}, +into naive segments $S_i$, called \textit{scans}, orthogonal to $\mathcal{D}$. +Each scan $S_i$ is a segment of a naive line $\mathcal{N}_i$, +called \textit{scan line}. +The directional scan is defined as: +\begin{equation} +\Delta_S = \left\{ S_i = \mathcal{D} \cap \mathcal{N}_i \cap \mathcal{G} +\left| \begin{array}{l} +\vec{V}(\mathcal{N}_i) \cdot \vec{V}(\mathcal{D}) = 0 \\ +H(\mathcal{N}_i) = H(\mathcal{N}_{i-1}) + P(\mathcal{D}) +\end{array} \right. \right\} +\end{equation} +In this definition, $\vec{V}(\mathcal{N}_i) \cdot \vec{V}(\mathcal{D}) = 0$ +expresses the orthogonality between the scan lines $\mathcal{N}_i$ +and the scan strip $\mathcal{D}$. +The shift $p(\mathcal{D})$ between successive scans $\mathcal{N}_{i-1}$ +and $\mathcal{N}_i$ guarantees that all points of $\mathcal{D}$ are traversed +only one time. + +The directional scan is completely defined by grid domain $\mathcal{G}$ +and first scan $S_0$ (see \RefFig{fig:ads}(a)). +In FBSD, $S_0$ can be defined either by its two end points $P_1$ and $P_2$, +or by center point $C$, director vector $\vec{V}$ and length $L$. +The scans $S_i$ can then be iteratively accessed from start scan $S_0$ +to last right and left scans. + +\begin{figure}[!htbp] +\begin{center} + \begin{picture}(1,5)(0,0) +% \put(0,0){\framebox(1,5)} + \end{picture} + \includegraphics[width=0.45\textwidth]{figures/ds.pdf} + \begin{picture}(20,5)(0,0) +% \put(0,0){\framebox(10,5)} + \put(-236,-2){$O$} + \put(-12,-2){$x$} + \put(-236,234){$y$} + \put(-115,-6){$a$} + \put(-78,115){\vector(-4,-1){20}} + \put(-76,113){\makebox(4,4)[l]{$P_2$}} + \put(-208,46){\vector(4,1){20}} + \put(-214,44){\makebox(4,4)[r]{$P_1$}} + \end{picture} + \includegraphics[width=0.45\textwidth]{figures/ads.pdf} + \begin{picture}(1,5)(0,0) +% \put(0,0){\framebox(1,5)} + \put(-236,-2){$O$} + \put(-12,-2){$x$} + \put(-236,234){$y$} + \put(-115,-5){$b$} + \put(-78,115){\vector(-4,-1){20}} + \put(-76,113){\makebox(4,4)[l]{$P_2$}} + \put(-208,46){\vector(4,1){20}} + \put(-214,44){\makebox(4,4)[r]{$P_1$}} + \put(-95,189){\vector(-1,0){40}} + \put(-93,186){\makebox(4,4)[l]{$\mathcal{C}$}} + \end{picture} + \caption{(a) A directional scan with start scan $S_0$ in black, + odd scans in green, even scans in blue, + bounds of scan lines $\mathcal{N}_i$ in dashed lines and + bounds of scan strip $\mathcal{D}$ in blue lines. + (b) An adaptive directional scan. + The scan strip is dynamically fit to curve $\mathcal{C}$ position, + and the scans are continuously centered on $\mathcal{C}$.} + \label{fig:ads} +\end{center} +\end{figure} + +An \textbf{adaptive directional scan} $\Delta_A$ +is a dynamical version of the directional scan with continuous registration +of the scan strip to the center line $\mathcal{C}$ of a tracked linear feature. +Compared to static directional scans, here the scan strip adapts from +initial position $\mathcal{D}_0$ to update position $\mathcal{D}_i$, +and at each step, the scan moves within its scan line +(see \RefFig{fig:ads}(b)). +The adaptive directional scan is formally defined by: -Typically, The manuscript of an IPOL article submitted for peer-review should -include an introduction, a detailed explanation of the algorithm (it could -include some theoretical background, pseudo-code and/or block diagram, a -complexity analysis, and an explanation of the parameter values), commented -examples of the results and references to related publications. This content -can be adapted when the article is not about an algorithm (like dataset -articles). +\begin{equation} +\Delta_A = \left\{ +S_i = \mathcal{D}_i \cap \mathcal{N}_i \cap \mathcal{G} +\left| \begin{array}{l} +\vec{V}(\mathcal{N}_i) \cdot \vec{V}(\mathcal{D}_0) = 0 \\ +H(\mathcal{N}_i) = H(\mathcal{N}_{i-1}) + P(\mathcal{D}_0) \\ +\mathcal{D}_{i} = \mathcal{L}(\widehat{C}_i, W(\mathcal{D}_0)), i > 0 +\end{array} \right. \right\} +\label{eq:ads} +\end{equation} +where $\widehat{C}_{i}$ is a triplet composed of the director vector +$(a_i,b_i)$ and the shift to origin $c_i$ of an estimate at position $i$ +of the curve $\mathcal{C}$ to track. +This last clause expresses the scan bounds update at iteration $i$. +In FBSD, the tracked linear feature is the blurred segment to detect. -- GitLab