diff --git a/Article/Fig_auto/autoNew.png b/Article/Fig_auto/autoNew.png new file mode 100644 index 0000000000000000000000000000000000000000..2e25eeedb09b7b91bee71c6b021f80381b9f9a8d Binary files /dev/null and b/Article/Fig_auto/autoNew.png differ diff --git a/Article/Fig_auto/autoOld.png b/Article/Fig_auto/autoOld.png new file mode 100644 index 0000000000000000000000000000000000000000..aa094fa2d44b4a74086b9b0f1c3b50c424573c40 Binary files /dev/null and b/Article/Fig_auto/autoOld.png differ diff --git a/Article/Fig_auto/buro.png b/Article/Fig_auto/buro.png new file mode 100755 index 0000000000000000000000000000000000000000..b3aa23a4ff700d29efcabcbbb50a917c9fdb5ea0 Binary files /dev/null and b/Article/Fig_auto/buro.png differ diff --git a/Article/Fig_auto/perfTable.tex b/Article/Fig_auto/perfTable.tex new file mode 100644 index 0000000000000000000000000000000000000000..340391591adb7be344fb0dab636d0060e1e9802d --- /dev/null +++ b/Article/Fig_auto/perfTable.tex @@ -0,0 +1,18 @@ +\begin{tabular}{|l||r|r|r|r|r|} +\hline +Measure $M$ & \multicolumn{1}{c|}{$T$ (ms)} & \multicolumn{1}{c|}{$N$} +& \multicolumn{1}{c|}{$N'$} & \multicolumn{1}{c|}{$L$ (pixels)} +& \multicolumn{1}{c|}{$W$ (pixels)} \\ +\hline +$M_{old}$ on image of \RefFig{fig:auto} & 32.8 & 341 & 98 & 37.0 & 2.54 \\ +$M_{new}$ on image of \RefFig{fig:auto} & 28.3 & 385 & 101 & 32.4 & 2.21 \\ +$M_{new}/M_{old}$ (\%) & \multicolumn{1}{l|}{86.3} & \multicolumn{1}{l|}{112.9} +& \multicolumn{1}{l|}{103.1} & \multicolumn{1}{l|}{87.6} +& \multicolumn{1}{l|}{87.0} \\ +\hline +$M_{new}/M_{old}$ (\%) & & & & & \\ +on CannyLines images +& 86.2 $\pm$ 2.3 & 109.8 $\pm$ 6.5 & 93.7 $\pm$ 7.1 +& 89.6 $\pm$ 5.4 & 84.8 $\pm$ 3.2 \\ +\hline +\end{tabular} diff --git a/Article/Fig_auto/perf_buro.txt b/Article/Fig_auto/perf_buro.txt new file mode 100644 index 0000000000000000000000000000000000000000..af4792b9411d7f47398c4c59e3e6d2c93de435ad --- /dev/null +++ b/Article/Fig_auto/perf_buro.txt @@ -0,0 +1,17 @@ +100 +800 +533 +2.83574 +1067 +385 +101 +32.3516 +2.2075 +2.23521 +3.2755 +993 +341 +96 +36.9635 +2.47546 +2.46527 diff --git a/Article/Fig_auto/perf_indoor01.txt b/Article/Fig_auto/perf_indoor01.txt new file mode 100644 index 0000000000000000000000000000000000000000..5272404113bbf7f65a70be01c4611b31542da588 --- /dev/null +++ b/Article/Fig_auto/perf_indoor01.txt @@ -0,0 +1,17 @@ +100 +640 +480 +5.88304 +2515 +885 +184 +28.6684 +2.20465 +2.34741 +7.02066 +2491 +842 +185 +30.447 +2.63768 +2.71501 diff --git a/Article/Fig_auto/perf_indoor02.txt b/Article/Fig_auto/perf_indoor02.txt new file mode 100644 index 0000000000000000000000000000000000000000..06709e343df547caa5b7068c1f2f423470beac01 --- /dev/null +++ b/Article/Fig_auto/perf_indoor02.txt @@ -0,0 +1,17 @@ +100 +640 +480 +4.07273 +1660 +583 +160 +35.9415 +1.83767 +1.87356 +4.80078 +1616 +490 +167 +43.3079 +2.33574 +2.36902 diff --git a/Article/Fig_auto/perf_indoor03.txt b/Article/Fig_auto/perf_indoor03.txt new file mode 100644 index 0000000000000000000000000000000000000000..7e68cc2746aeee6df9e59da9b1ba70f8e1cf566d --- /dev/null +++ b/Article/Fig_auto/perf_indoor03.txt @@ -0,0 +1,17 @@ +100 +640 +480 +3.95664 +1694 +599 +105 +27.2814 +2.14453 +2.18836 +4.55904 +1655 +563 +106 +29.1184 +2.54614 +2.58556 diff --git a/Article/Fig_auto/perf_indoor04.txt b/Article/Fig_auto/perf_indoor04.txt new file mode 100644 index 0000000000000000000000000000000000000000..f0beff79934df5a344f99f44387189a83165822a --- /dev/null +++ b/Article/Fig_auto/perf_indoor04.txt @@ -0,0 +1,17 @@ +100 +640 +480 +2.17163 +862 +286 +86 +39.9587 +2.02305 +2.06118 +2.52306 +849 +241 +85 +48.6923 +2.38403 +2.40523 diff --git a/Article/Fig_auto/perf_indoor05.txt b/Article/Fig_auto/perf_indoor05.txt new file mode 100644 index 0000000000000000000000000000000000000000..4b889dd05ef1e8efec441058547508eef16056a9 --- /dev/null +++ b/Article/Fig_auto/perf_indoor05.txt @@ -0,0 +1,17 @@ +100 +640 +480 +4.31949 +1723 +682 +127 +26.3117 +2.22382 +2.29983 +5.13065 +1688 +632 +144 +28.7129 +2.48238 +2.49403 diff --git a/Article/Fig_auto/perf_indoor06.txt b/Article/Fig_auto/perf_indoor06.txt new file mode 100644 index 0000000000000000000000000000000000000000..db58d034535c84c13e873c4bc6bd0a8dd6b2d8bf --- /dev/null +++ b/Article/Fig_auto/perf_indoor06.txt @@ -0,0 +1,17 @@ +100 +640 +480 +3.98381 +1311 +535 +182 +44.0948 +1.85251 +1.86391 +4.60137 +1355 +432 +188 +53.3568 +2.1679 +2.13384 diff --git a/Article/Fig_auto/perf_indoor07.txt b/Article/Fig_auto/perf_indoor07.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd24b05c078deceb551d65729638cd40dfa385c3 --- /dev/null +++ b/Article/Fig_auto/perf_indoor07.txt @@ -0,0 +1,17 @@ +100 +640 +480 +4.24092 +1617 +570 +144 +36.4232 +2.09775 +2.16465 +4.92683 +1475 +473 +139 +45.6733 +2.48646 +2.5674 diff --git a/Article/Fig_auto/perf_indoor08.txt b/Article/Fig_auto/perf_indoor08.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac59c576d089e173519dcebb809ee863f34955b9 --- /dev/null +++ b/Article/Fig_auto/perf_indoor08.txt @@ -0,0 +1,17 @@ +100 +640 +480 +5.36382 +2408 +858 +112 +23.5948 +2.37491 +2.36615 +6.35158 +2397 +785 +135 +25.7995 +2.81818 +2.87613 diff --git a/Article/Fig_auto/perf_indoor09.txt b/Article/Fig_auto/perf_indoor09.txt new file mode 100644 index 0000000000000000000000000000000000000000..1aa8d458674fc04aad03c37594a47a9f29f549ee --- /dev/null +++ b/Article/Fig_auto/perf_indoor09.txt @@ -0,0 +1,17 @@ +100 +640 +480 +5.92288 +2567 +912 +150 +26.4498 +2.28031 +2.27631 +6.96198 +2534 +827 +156 +29.7376 +2.64478 +2.61663 diff --git a/Article/Fig_auto/perf_indoor10.txt b/Article/Fig_auto/perf_indoor10.txt new file mode 100644 index 0000000000000000000000000000000000000000..6065268350ff45902760a9b7b232271984d48867 --- /dev/null +++ b/Article/Fig_auto/perf_indoor10.txt @@ -0,0 +1,17 @@ +100 +640 +480 +2.22735 +861 +290 +99 +41.5689 +2.01829 +1.99912 +2.73997 +833 +267 +100 +46.5214 +2.56589 +2.60468 diff --git a/Article/Fig_auto/perf_outdoor01.txt b/Article/Fig_auto/perf_outdoor01.txt new file mode 100644 index 0000000000000000000000000000000000000000..dbd4453b61f88d2f203b54dad88a1a06a76eb0e0 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor01.txt @@ -0,0 +1,17 @@ +100 +640 +480 +4.28481 +1844 +645 +129 +27.9251 +2.1593 +2.15284 +5.02513 +1768 +603 +136 +30.304 +2.59109 +2.59594 diff --git a/Article/Fig_auto/perf_outdoor02.txt b/Article/Fig_auto/perf_outdoor02.txt new file mode 100644 index 0000000000000000000000000000000000000000..a9393675bea2d045751f59ac3d332a83af03b810 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor02.txt @@ -0,0 +1,17 @@ +100 +640 +480 +6.63086 +3425 +1048 +112 +17.3362 +2.54585 +2.54915 +7.37776 +3325 +994 +114 +18.5365 +2.79166 +2.81694 diff --git a/Article/Fig_auto/perf_outdoor03.txt b/Article/Fig_auto/perf_outdoor03.txt new file mode 100644 index 0000000000000000000000000000000000000000..1c3b584327a79df16ec3ba375119a2c55f21ccad --- /dev/null +++ b/Article/Fig_auto/perf_outdoor03.txt @@ -0,0 +1,17 @@ +100 +640 +480 +4.60385 +2385 +700 +63 +18.2548 +2.5136 +2.42938 +5.08277 +2319 +690 +60 +18.6076 +2.88101 +2.88331 diff --git a/Article/Fig_auto/perf_outdoor04.txt b/Article/Fig_auto/perf_outdoor04.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e0766d1d45f2bded81ea2cf636763b611c2f7d1 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor04.txt @@ -0,0 +1,17 @@ +100 +640 +480 +5.6053 +2784 +850 +96 +17.8598 +2.465 +2.48193 +6.1922 +2654 +812 +108 +19.6992 +2.86479 +2.95971 diff --git a/Article/Fig_auto/perf_outdoor05.txt b/Article/Fig_auto/perf_outdoor05.txt new file mode 100644 index 0000000000000000000000000000000000000000..f256bc08c18b7cc2d1727e14a136dca06f785b4f --- /dev/null +++ b/Article/Fig_auto/perf_outdoor05.txt @@ -0,0 +1,17 @@ +100 +640 +480 +3.36607 +1585 +546 +79 +22.7956 +2.34473 +2.56395 +3.85006 +1500 +473 +89 +27.3854 +2.74847 +2.88978 diff --git a/Article/Fig_auto/perf_outdoor06.txt b/Article/Fig_auto/perf_outdoor06.txt new file mode 100644 index 0000000000000000000000000000000000000000..6eaf3a2adc92b3114a06de8cb2fcbc77160cc770 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor06.txt @@ -0,0 +1,17 @@ +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 diff --git a/Article/Fig_auto/perf_outdoor07.txt b/Article/Fig_auto/perf_outdoor07.txt new file mode 100644 index 0000000000000000000000000000000000000000..078b54b0f1d92d203d6d61b38200781f423844f8 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor07.txt @@ -0,0 +1,17 @@ +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 diff --git a/Article/Fig_auto/perf_outdoor08.txt b/Article/Fig_auto/perf_outdoor08.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6e5ed84584bce98f1f0d933c9a2c7ba615ec6cd --- /dev/null +++ b/Article/Fig_auto/perf_outdoor08.txt @@ -0,0 +1,17 @@ +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 diff --git a/Article/Fig_auto/perf_outdoor09.txt b/Article/Fig_auto/perf_outdoor09.txt new file mode 100644 index 0000000000000000000000000000000000000000..559bdd8377204c5c4b511246e66be5b790c40e47 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor09.txt @@ -0,0 +1,17 @@ +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 diff --git a/Article/Fig_auto/perf_outdoor10.txt b/Article/Fig_auto/perf_outdoor10.txt new file mode 100644 index 0000000000000000000000000000000000000000..9f0cdc545efe876d9a7f5f8e27e9c5193efc97c5 --- /dev/null +++ b/Article/Fig_auto/perf_outdoor10.txt @@ -0,0 +1,17 @@ +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 diff --git a/Article/Fig_synth/statsTable.tex b/Article/Fig_synth/statsTable.tex index 497b19cc03e451a4545ec11d14ac0b80d30406be..2850f3c6da99ba3494d9d107c116723ffc4d084a 100644 --- a/Article/Fig_synth/statsTable.tex +++ b/Article/Fig_synth/statsTable.tex @@ -1,18 +1,18 @@ \begin{tabular}{|l||rcl|rcl|} \hline -Number of input segments per image +Amount of detected segments per image & 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 \\ -Number of undetected segments per image +Amount of undetected input segments per image & 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 \\ -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 \\ -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 \\ -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 \\ Long segment angle difference (in degrees) & 0.40 & $\pm$ & 0.63 & 0.34 & $\pm$ & 0.60 \\ diff --git a/Article/expe.tex b/Article/expe.tex index c6e3634e9668941ba2426951896da5643a1dd4d9..49090bd14587b139dca1365637f8fdaeae58f6e1 100755 --- a/Article/expe.tex +++ b/Article/expe.tex @@ -13,103 +13,6 @@ optimized basic routines. \input{expeHard} -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} +\input{expeAuto} +%\input{expeOld} diff --git a/Article/expeAuto.tex b/Article/expeAuto.tex new file mode 100755 index 0000000000000000000000000000000000000000..458972126a09a22862af9483b9420bb2b2216c3f --- /dev/null +++ b/Article/expeAuto.tex @@ -0,0 +1,50 @@ + +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} diff --git a/Article/expeHard.tex b/Article/expeHard.tex index 953064d4e6fe6042f43549fe595356c010b568f3..d7ff5921a24e948649cafe5094c80b56b5e6ca9f 100755 --- a/Article/expeHard.tex +++ b/Article/expeHard.tex @@ -1,6 +1,6 @@ -The second test (\RefFig{fig:hard}) compares the performance of both -detectors on a quite difficult image with a lot of gradient noise. +The second test (\RefFig{fig:hard}) visually compares the results of +both detectors on quite difficult images with a lot of gradient noise. The new detector provides less outliers and misaligned segments, and globally more relevant informations to infere the structure of the brick wall. \begin{figure}[h] @@ -21,9 +21,9 @@ globally more relevant informations to infere the structure of the brick wall. \put(-60.5,2){c} \end{picture} \end{tabular} - \caption{Evaluation on a quite textured image: - 1) imput image, - 2) results of the old detector, - 3) results of the new detector.} + \caption{Detection results on quite textured images: + 1) one of the tested images, + 2) the segments found by the old detector, + 3) and the one found by the new detector.} \label{fig:hard} \end{figure} diff --git a/Article/expeOld.tex b/Article/expeOld.tex new file mode 100644 index 0000000000000000000000000000000000000000..3ed64fbdd3ed941d893f9c402210b79bb46862b6 --- /dev/null +++ b/Article/expeOld.tex @@ -0,0 +1,100 @@ +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} + diff --git a/Article/expeSynthese.tex b/Article/expeSynthese.tex index 358904731a68bf481744151fbc490dbaafa5466d..26c512f19d7ebd839eb121d3c9aea94edf65a5e0 100755 --- a/Article/expeSynthese.tex +++ b/Article/expeSynthese.tex @@ -1,13 +1,13 @@ The first test (\RefFig{fig:synth}) compares the performance of both 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 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 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] %\center \begin{tabular}{ @@ -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/statsnewBounds.png} \begin{picture}(1,1) - \put(-310,0){1)} - \put(-240,0){2)} - \put(-170,0){3)} - \put(-100,0){4)} - \put(-30,0){5)} + \put(-310,0){a)} + \put(-240,0){b)} + \put(-170,0){c)} + \put(-100,0){d)} + \put(-30,0){e)} \end{picture} \end{tabular} \caption{Evaluation on synthesized images: - 1) one of the test images, - 2) output segments points from the old detector and - 3) their minimal digital straight segments, - 4) output segments points from the new detector and - 5) their minimal digital straight segments.} + a) one of the test images, + b) output segments points from the old detector and + c) their minimal digital straight segments, + d) output segments points from the new detector and + e) their minimal digital straight segments.} \label{fig:synth} \end{figure} \begin{table} \centering \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} \end{table}