Skip to content
Snippets Groups Projects
Commit 1bf4e616 authored by even's avatar even
Browse files

Article: expe auto

parent 8082c796
No related branches found
No related tags found
No related merge requests found
100
640
480
7.1816
3803
1096
87
17.6088
2.46875
2.45255
8.2095
3674
1126
104
17.6728
2.82494
2.87189
100
640
480
6.76378
3011
1094
154
24.1812
2.29961
2.5835
7.8551
2762
977
191
28.5941
2.69877
2.849
100
640
480
7.28897
3520
1113
176
23.2924
2.3712
2.43336
8.29572
3358
1030
195
25.1441
2.81687
2.95701
100
640
480
4.20631
1975
653
119
25.8428
1.99809
1.94127
4.86938
1889
596
122
29.4155
2.53193
2.55084
100
640
480
4.22833
1793
705
92
22.0662
2.4238
2.49194
5.06621
1747
667
110
23.9205
2.76348
2.89433
\begin{tabular}{|l||rcl|rcl|} \begin{tabular}{|l||rcl|rcl|}
\hline \hline
Number of input segments per image Amount of detected segments per image
& 21.22 & $\pm$ & 5.32 & 27.33 & $\pm$ & 6.38 \\ & 21.22 & $\pm$ & 5.32 & 27.33 & $\pm$ & 6.38 \\
Number of long input segments per image Amount of detected long segments per image
& 10.90 & $\pm$ & 1.88 & 9.03 & $\pm$ & 2.15 \\ & 10.90 & $\pm$ & 1.88 & 9.03 & $\pm$ & 2.15 \\
Number of undetected segments per image Amount of undetected input segments per image
& 1.15 & $\pm$ & 1.80 & 0.28 & $\pm$ & 0.56 \\ & 1.15 & $\pm$ & 1.80 & 0.28 & $\pm$ & 0.56 \\
Percentage of true segment area found Ratio of true detection (\%) : $\#(D\cap S)/\#S$
& 96.83 & $\pm$ & 0.61 & 96.81 & $\pm$ & 0.62 \\ & 96.83 & $\pm$ & 0.61 & 96.81 & $\pm$ & 0.62 \\
Percentage of false segment area found Ratio of false detection (\%) : $\#(D\cap\overline{S})/\#S$
& 6.9 & $\pm$ & 1.0 & 6.52 & $\pm$ & 0.94 \\ & 6.9 & $\pm$ & 1.0 & 6.52 & $\pm$ & 0.94 \\
Width difference (in pixels) to input segment Width difference (in pixels) to matched input segment
& 2.08 & $\pm$ & 0.27 & 1.91 & $\pm$ & 0.24 \\ & 2.08 & $\pm$ & 0.27 & 1.91 & $\pm$ & 0.24 \\
Angle difference (in degrees) to input segment Angle difference (in degrees) to matched input segment
& 0.87 & $\pm$ & 0.78 & 0.92 & $\pm$ & 0.75 \\ & 0.87 & $\pm$ & 0.78 & 0.92 & $\pm$ & 0.75 \\
Long segment angle difference (in degrees) Long segment angle difference (in degrees)
& 0.40 & $\pm$ & 0.63 & 0.34 & $\pm$ & 0.60 \\ & 0.40 & $\pm$ & 0.63 & 0.34 & $\pm$ & 0.60 \\
......
...@@ -13,103 +13,6 @@ optimized basic routines. ...@@ -13,103 +13,6 @@ optimized basic routines.
\input{expeHard} \input{expeHard}
The first test compares the computation times of both detectors on a \input{expeAuto}
selection of input strokes (\RefFig{fig:buro}). Results are displayed
in \RefTab{tab:cmpOldNew}.
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.49\textwidth]{Fig_expe/buroOld.png} &
\includegraphics[width=0.49\textwidth]{Fig_expe/buroNew.png}
\begin{picture}(1,1)
\put(-158,46){\circle{8}}
\put(-162,42){\makebox(8,8){\scriptsize 0}}
\put(-18,30){\circle{8}}
\put(-22,26){\makebox(8,8){\scriptsize 1}}
\put(-57,92){\circle{8}}
\put(-61,88){\makebox(8,8){\scriptsize 2}}
\put(-53,104){\circle{8}}
\put(-57,100){\makebox(8,8){\scriptsize 3}}
\put(-90,71){\circle{8}}
\put(-94,67){\makebox(8,8){\scriptsize 4}}
\put(-92,23){\circle{8}}
\put(-96,19){\makebox(8,8){\scriptsize 5}}
\put(-134,9){\circle{8}}
\put(-138,5){\makebox(8,8){\scriptsize 6}}
\put(-156,27){\circle{8}}
\put(-160,23){\makebox(8,8){\scriptsize 7}}
\put(-150,84){\circle{8}}
\put(-154,80){\makebox(8,8){\scriptsize 8}}
\put(-39,110){\circle{8}}
\put(-43,106){\makebox(8,8){\scriptsize 9}}
\end{picture}
\end{tabular}
\caption{Outputs of both former (on left) and new (on right) detectors
using a selection of input strokes.}
\label{fig:buro}
\end{figure}
\begin{table}
\centering
\begin{tabular}{|l||l|l|l|l|l|l|l|l|l|l|}
\hline \multicolumn{1}{|r||}{Stroke \hspace{0.4cm}} &
\multicolumn{1}{c|}{1} & \multicolumn{1}{c|}{2} &
\multicolumn{1}{c|}{3} & \multicolumn{1}{c|}{4} &
\multicolumn{1}{c|}{5} & \multicolumn{1}{c|}{6} &
\multicolumn{1}{c|}{7} & \multicolumn{1}{c|}{8} &
\multicolumn{1}{c|}{9} & \multicolumn{1}{c|}{10} \\ \hline \hline
with the former detector: \hspace{0.4cm}
& 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 \\ \hline
with the new detector: & & & & & & & & & & \\ \hline
\end{tabular}
\caption{Compared execution time in milliseconds between former and new
detectors with the input strokes of \RefFig{fig:buro}.}
\label{tab:cmpOldNew}
\end{table}
In the second series of tests, the execution times of both detectors were
compared on the automatic detection of edges on a set of test images.
Results are displayed for one of them (\RefFig{fig:evalAuto}).
998 (resp. 822) blurred segments are extracted with the former
(resp. new) detector on all images.
The average blurred segment width is 5.06 pixels for the former detector,
and 2.62 pixels for the new detector.
The average execution time is 206 ms for the former detector,
and 96 ms for the new detector.
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.49\textwidth]{Fig_expe/autoOld.png} &
\includegraphics[width=0.49\textwidth]{Fig_expe/autoNew.png}
\end{tabular}
\caption{Automatic edge detections on one of the test images with the
former detector on the left, and the new detector on the right.}
\label{fig:evalAuto}
\end{figure}
The former detector does not estimate the edge width, but just circumscribes
the edge with a blurred segment of assigned width.
If the edge is very thin, the blurred segment is free to rotate around the
extracted edge and the provided orientation is biased.
Moreover it lets some space to incorporate additional spurious outliers,
as illustrated in \RefFig{fig:outliers}.
With the new appoach, a real estimation of the edge width is provided.
The main risk of outlier incorporation remains at the beginning of the
blurred segment expansion as long as the minimal width continues to grow
and the assigned width has not been set to the detected segment minimal width.
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.49\textwidth]{Fig_expe/outliersOld_zoom.png} &
\includegraphics[width=0.49\textwidth]{Fig_expe/outliersNew_zoom.png}
\end{tabular}
\caption{Potential insertion of outliers for both detectors:
On the left, the fixed width of the former detector always lets opportunities
of outlier insertions. On the right, the new detector restricts these
opportunities to the blurred segment early analysis stage.}
\label{fig:outliers}
\end{figure}
%\input{expeOld}
The third series of tests aims at evaluating the performance of the new
detector wrt the previous one on a selection of more standard images.
Compared measures $M$ are the execution time $T$, the amount $N$ of detected
blurred segments, the amount $N'$ of long (larger than 40 pixels) segments,
the mean length $L$ and the mean width $W$ of the detected segments.
In order to be objective, these results are also compared to the same
measurements made on the image data base used for the CannyLine line
segment detector \cite{LuAl15}.
The table \RefTab{tab:auto} gives the measures obtained on one of the
selected images (\RefFig{fig:auto}) and the result of a systematic test
on the whole CannyLine data base.
The new detector is faster and provides more segments.
These segments are mainly shorter and thinner.
The control of the assigned width to fit to the detected segment width
has the side effect of blocking the segment expansion when the remote parts
are more noisy.
The relevance of this behavior depends strongly on application requirements.
\begin{figure}[h]
%\center
\begin{tabular}{
c@{\hspace{0.1cm}}c@{\hspace{0.1cm}}c@{\hspace{0.1cm}}}
\includegraphics[width=0.32\textwidth]{Fig_auto/buro.png} &
\includegraphics[width=0.32\textwidth]{Fig_auto/autoOld.png} &
\includegraphics[width=0.32\textwidth]{Fig_auto/autoNew.png}
\begin{picture}(1,1)
{\color{dwhite}{
\put(-286,4.5){\circle*{8}}
\put(-171,4.5){\circle*{8}}
\put(-58,4.5){\circle*{8}}
}}
\put(-288.5,2){a}
\put(-173.5,2){b}
\put(-60.5,2){c}
\end{picture}
\end{tabular}
\caption{Automatic detection of segments:
a) input image,
b) results of the old detector,
c) results of the new detector.}
\label{fig:auto}
\end{figure}
\begin{table}
\centering
\input{Fig_auto/perfTable}
\caption{Measured performance of both detectors on standard images.
$M_{old}$ (resp. $M_{new}$) denotes the measure obtained with
the previous (resp. new) detector.}
\label{tab:auto}
\end{table}
The second test (\RefFig{fig:hard}) compares the performance of both The second test (\RefFig{fig:hard}) visually compares the results of
detectors on a quite difficult image with a lot of gradient noise. both detectors on quite difficult images with a lot of gradient noise.
The new detector provides less outliers and misaligned segments, and The new detector provides less outliers and misaligned segments, and
globally more relevant informations to infere the structure of the brick wall. globally more relevant informations to infere the structure of the brick wall.
\begin{figure}[h] \begin{figure}[h]
...@@ -21,9 +21,9 @@ globally more relevant informations to infere the structure of the brick wall. ...@@ -21,9 +21,9 @@ globally more relevant informations to infere the structure of the brick wall.
\put(-60.5,2){c} \put(-60.5,2){c}
\end{picture} \end{picture}
\end{tabular} \end{tabular}
\caption{Evaluation on a quite textured image: \caption{Detection results on quite textured images:
1) imput image, 1) one of the tested images,
2) results of the old detector, 2) the segments found by the old detector,
3) results of the new detector.} 3) and the one found by the new detector.}
\label{fig:hard} \label{fig:hard}
\end{figure} \end{figure}
The first test compares the computation times of both detectors on a
selection of input strokes (\RefFig{fig:buro}). Results are displayed
in \RefTab{tab:cmpOldNew}.
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.49\textwidth]{Fig_expe/buroOld.png} &
\includegraphics[width=0.49\textwidth]{Fig_expe/buroNew.png}
\begin{picture}(1,1)
\put(-158,46){\circle{8}}
\put(-162,42){\makebox(8,8){\scriptsize 0}}
\put(-18,30){\circle{8}}
\put(-22,26){\makebox(8,8){\scriptsize 1}}
\put(-57,92){\circle{8}}
\put(-61,88){\makebox(8,8){\scriptsize 2}}
\put(-53,104){\circle{8}}
\put(-57,100){\makebox(8,8){\scriptsize 3}}
\put(-90,71){\circle{8}}
\put(-94,67){\makebox(8,8){\scriptsize 4}}
\put(-92,23){\circle{8}}
\put(-96,19){\makebox(8,8){\scriptsize 5}}
\put(-134,9){\circle{8}}
\put(-138,5){\makebox(8,8){\scriptsize 6}}
\put(-156,27){\circle{8}}
\put(-160,23){\makebox(8,8){\scriptsize 7}}
\put(-150,84){\circle{8}}
\put(-154,80){\makebox(8,8){\scriptsize 8}}
\put(-39,110){\circle{8}}
\put(-43,106){\makebox(8,8){\scriptsize 9}}
\end{picture}
\end{tabular}
\caption{Outputs of both former (on left) and new (on right) detectors
using a selection of input strokes.}
\label{fig:buro}
\end{figure}
\begin{table}
\centering
\begin{tabular}{|l||l|l|l|l|l|l|l|l|l|l|}
\hline \multicolumn{1}{|r||}{Stroke \hspace{0.4cm}} &
\multicolumn{1}{c|}{1} & \multicolumn{1}{c|}{2} &
\multicolumn{1}{c|}{3} & \multicolumn{1}{c|}{4} &
\multicolumn{1}{c|}{5} & \multicolumn{1}{c|}{6} &
\multicolumn{1}{c|}{7} & \multicolumn{1}{c|}{8} &
\multicolumn{1}{c|}{9} & \multicolumn{1}{c|}{10} \\ \hline \hline
with the former detector: \hspace{0.4cm}
& 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 & 18.2 \\ \hline
with the new detector: & & & & & & & & & & \\ \hline
\end{tabular}
\caption{Compared execution time in milliseconds between former and new
detectors with the input strokes of \RefFig{fig:buro}.}
\label{tab:cmpOldNew}
\end{table}
In the second series of tests, the execution times of both detectors were
compared on the automatic detection of edges on a set of test images.
Results are displayed for one of them (\RefFig{fig:evalAuto}).
998 (resp. 822) blurred segments are extracted with the former
(resp. new) detector on all images.
The average blurred segment width is 5.06 pixels for the former detector,
and 2.62 pixels for the new detector.
The average execution time is 206 ms for the former detector,
and 96 ms for the new detector.
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.49\textwidth]{Fig_expe/autoOld.png} &
\includegraphics[width=0.49\textwidth]{Fig_expe/autoNew.png}
\end{tabular}
\caption{Automatic edge detections on one of the test images with the
former detector on the left, and the new detector on the right.}
\label{fig:evalAuto}
\end{figure}
The former detector does not estimate the edge width, but just circumscribes
the edge with a blurred segment of assigned width.
If the edge is very thin, the blurred segment is free to rotate around the
extracted edge and the provided orientation is biased.
Moreover it lets some space to incorporate additional spurious outliers,
as illustrated in \RefFig{fig:outliers}.
With the new appoach, a real estimation of the edge width is provided.
The main risk of outlier incorporation remains at the beginning of the
blurred segment expansion as long as the minimal width continues to grow
and the assigned width has not been set to the detected segment minimal width.
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.49\textwidth]{Fig_expe/outliersOld_zoom.png} &
\includegraphics[width=0.49\textwidth]{Fig_expe/outliersNew_zoom.png}
\end{tabular}
\caption{Potential insertion of outliers for both detectors:
On the left, the fixed width of the former detector always lets opportunities
of outlier insertions. On the right, the new detector restricts these
opportunities to the blurred segment early analysis stage.}
\label{fig:outliers}
\end{figure}
The first test (\RefFig{fig:synth}) compares the performance of both The first test (\RefFig{fig:synth}) compares the performance of both
detectors on a set of 1000 synthesized images containing 10 randomly detectors on a set of 1000 synthesized images containing 10 randomly
placed straight segments with random width between 1 and 4 pixels. placed input segments with random width between 1 and 4 pixels.
Altough this perfect world context with low gradient noise tends to soften Altough this perfect world context with low gradient noise tends to soften
the old detector weaknesses, the results of \RefTab{tab:synth} show slightly the old detector weaknesses, the results of \RefTab{tab:synth} show slightly
better measurements of width and angle on long segments for the new detector. better width and angle measurements on long segments for the new detector.
The new detector generates more small segments that degrade the angle The new detector generates more small segments that degrade the angle
estimations, but it produces a smaller amount of false detections and estimations, but it produces a smaller amount of false detections and
succeeds in finding most of the segments. succeeds in finding most of the input segments.
\begin{figure}[h] \begin{figure}[h]
%\center %\center
\begin{tabular}{ \begin{tabular}{
...@@ -18,24 +18,26 @@ succeeds in finding most of the segments. ...@@ -18,24 +18,26 @@ succeeds in finding most of the segments.
\includegraphics[width=0.19\textwidth]{Fig_synth/statsnewPoints.png} & \includegraphics[width=0.19\textwidth]{Fig_synth/statsnewPoints.png} &
\includegraphics[width=0.19\textwidth]{Fig_synth/statsnewBounds.png} \includegraphics[width=0.19\textwidth]{Fig_synth/statsnewBounds.png}
\begin{picture}(1,1) \begin{picture}(1,1)
\put(-310,0){1)} \put(-310,0){a)}
\put(-240,0){2)} \put(-240,0){b)}
\put(-170,0){3)} \put(-170,0){c)}
\put(-100,0){4)} \put(-100,0){d)}
\put(-30,0){5)} \put(-30,0){e)}
\end{picture} \end{picture}
\end{tabular} \end{tabular}
\caption{Evaluation on synthesized images: \caption{Evaluation on synthesized images:
1) one of the test images, a) one of the test images,
2) output segments points from the old detector and b) output segments points from the old detector and
3) their minimal digital straight segments, c) their minimal digital straight segments,
4) output segments points from the new detector and d) output segments points from the new detector and
5) their minimal digital straight segments.} e) their minimal digital straight segments.}
\label{fig:synth} \label{fig:synth}
\end{figure} \end{figure}
\begin{table} \begin{table}
\centering \centering
\input{Fig_synth/statsTable} \input{Fig_synth/statsTable}
\caption{Measured performance of both detectors on a set of synthesized images.} \caption{Measured performance of both detectors on a set of synthesized images.
$S$ is the set of all the input segments pixels,
$D$ the set of all the detected segments pixels.}
\label{tab:synth} \label{tab:synth}
\end{table} \end{table}
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