Difference between revisions of "Olena/MaxtreeReview"

From LRDE

(Use {{SERVER}} instead of a static url like http://www.lrde.epita.fr/)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{OlenaMenu}}
+
<noinclude>{{OlenaMenu}}</noinclude>
   
 
{{DISPLAYTITLE:A Comparative Review of Component Tree Computation Algorithms}}
 
{{DISPLAYTITLE:A Comparative Review of Component Tree Computation Algorithms}}
   
 
== Dataset ==
 
== Dataset ==
Download [{{SERVER}}/dload/olena/maxtree-review/maxtree-comparison-dataset.tar.bz2 the image dataset] used in this comparison to bench the algorithms (26 Mb).
 
 
Download [{{SERVER}}/dload/olena/maxtree-review/maxtree-comparison-dataset.tar.bz2 the image dataset] used in this comparison to bench the algorithms (26 Mb).
 
Download [{{SERVER}}/dload/olena/maxtree-review/maxtree-comparison-dataset.tar.bz2 the image dataset] used in this comparison to bench the algorithms (26 Mb).
   
Line 18: Line 17:
   
 
== Figures ==
 
== Figures ==
Some results extracted from the paper.
+
Some results extracted from the paper. Tests conducted on Intel i7 (Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz)
   
 
<gallery widths=523px heights=379px>
 
<gallery widths=523px heights=379px>
Line 26: Line 25:
 
File:res-fig4-crop.png|''Comparison of the parallel algorithms on a 6.8 Mega-pixels 8-bits image as a function of number of threads. Speedup w.r.t the sequential version.''
 
File:res-fig4-crop.png|''Comparison of the parallel algorithms on a 6.8 Mega-pixels 8-bits image as a function of number of threads. Speedup w.r.t the sequential version.''
 
File:res-fig5-crop.png|''Comparison of the parallel algorithms using 8 threads on a 6.8 Mega-pixels image as a function of the quantization.''
 
File:res-fig5-crop.png|''Comparison of the parallel algorithms using 8 threads on a 6.8 Mega-pixels image as a function of the quantization.''
  +
</gallery>
  +
  +
Figures to answer reviewers requests about:
  +
* Parallel algorithms behaviour on a machine with more cores. It has been tested on a 12-cores (24 logical cores) machine where each processor is an Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz.
  +
* Parallel algorithms behaviour on an AMD processor since some algorithms seem to be more efficient on those architectures. Tests have been conducted on a AMD quad-core AMD Phenom(tm) II X4 945 Processor.
  +
  +
<gallery widths=523px heights=379px>
  +
File:maxtree_review_cluster.svg|''Comparison of the parallel algorithms on a 8-bit 6.8 Mega-pixels image as a function of the number of thread on the 12-cores Intel(R) Xeon(R).''
  +
File:maxtree_review_amd.svg|''Comparison of the parallel algorithms on a 8-bit 6.8 Mega-pixels image as a function of the number of thread on the quad-core AMD Phenom(tm).''
 
</gallery>
 
</gallery>
   
 
== Source files ==
 
== Source files ==
You can download the [{{SERVER}}/dload/olena/maxtree-review/maxtree-review.tar.bz2 archive] with the source code.
 
 
You can download the [{{SERVER}}/dload/olena/maxtree-review/maxtree-review.tar.bz2 archive] with the source code.
 
You can download the [{{SERVER}}/dload/olena/maxtree-review/maxtree-review.tar.bz2 archive] with the source code.
   
Line 39: Line 46:
   
 
You need a c++ 11 compliant compiler (applications have been successfully built with gcc > 4.7 and icc
 
You need a c++ 11 compliant compiler (applications have been successfully built with gcc > 4.7 and icc
 
   
 
=== Building maxtree executables ===
 
=== Building maxtree executables ===
 
<pre>
 
<pre>
> tar xjf maxtree-review.targ.bz2 && cd maxtree-review
+
> tar xjf maxtree-review.tar.bz2 && cd maxtree-review
 
> mkdir build && cd build
 
> mkdir build && cd build
 
> cmake ..
 
> cmake ..
Line 63: Line 69:
 
* maxtree_parallel_unfindrank: Berger + rank (parallel)
 
* maxtree_parallel_unfindrank: Berger + rank (parallel)
 
* maxtree_parallel_ufind_line: Matas et al. (parallel)
 
* maxtree_parallel_ufind_line: Matas et al. (parallel)
 
   
 
The binaries are then located in <tt>apps/maxtree_comparison</tt>.
 
The binaries are then located in <tt>apps/maxtree_comparison</tt>.

Latest revision as of 08:56, 17 June 2017


Dataset

Download the image dataset used in this comparison to bench the algorithms (26 Mb).

On-line application.

Compare the performance of the algorithms on an image of your choice and plot the performance curves.

Demo page url: http://olena.lrde.epita.fr/demos/maxtree_comparison.php

Status

Under development. For now, you can only plot curves and show performance of the algorithms on a pre-defined dataset. Benching the algorithms on your own images is still not possible.

Figures

Some results extracted from the paper. Tests conducted on Intel i7 (Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz)

Figures to answer reviewers requests about:

  • Parallel algorithms behaviour on a machine with more cores. It has been tested on a 12-cores (24 logical cores) machine where each processor is an Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz.
  • Parallel algorithms behaviour on an AMD processor since some algorithms seem to be more efficient on those architectures. Tests have been conducted on a AMD quad-core AMD Phenom(tm) II X4 945 Processor.

Source files

You can download the archive with the source code.

Dependencies

The applications rely on those external libraries:

  • Boost
  • libfreeimage
  • Intel TBB

You need a c++ 11 compliant compiler (applications have been successfully built with gcc > 4.7 and icc

Building maxtree executables

> tar xjf maxtree-review.tar.bz2 && cd maxtree-review
> mkdir build && cd build
> cmake ..
> make -C apps/maxtree_comparison

It outputs the following executables:

  • maxtree_serial_hqueue: Salembier (sequential)
  • maxtree_serial_pqueue: Nister (<18bits) / Wilkinson (>18 bits) (sequential)
  • maxtree_serial_berger: Berger et al.
  • maxtree_serial_ufind_wlc: Berger + level compression
  • maxtree_serial_ufind: Berger + level compression enabled if < 18bits
  • maxtree_serial_unfindrank: Berger + rank
  • maxtree_serial_najman: Najman and Couprie
  • maxtree_parallel_hqueue: Salembier (parallel)
  • maxtree_parallel_pqueue: Nister (<18bits) / Wilkinson (>18 bits) (parallel)
  • maxtree_parallel_ufind: Berger + level compression enabled if < 18bits (parallel)
  • maxtree_parallel_unfindrank: Berger + rank (parallel)
  • maxtree_parallel_ufind_line: Matas et al. (parallel)

The binaries are then located in apps/maxtree_comparison. For usage and available options, run appname --help where appname is the name of the maxtree algorithm.

$ ./apps/maxtree_comparison/maxtree_serial_berger --help
Usage: ./apps/maxtree_comparison/maxtree_serial_berger inputfile
Allowed options:
  --help					 produce help message
  --nthread arg (=-1)	set number of thread (default: auto)
  --nbits arg (=8)		Set number of bits (default: 8). Quantization of the 
								original is changed. Upper bits are moved left and 
								missing lower bits are generated at random.
  --ntest arg (=3)		set number of runs (default: 3)
  --sz arg (=0)			Set size (number of pixels) (0: original). Resize the 
								image by tiling or cropping the original until matching
								the number of pixel required. Original ratio 
								width/height is kept.