c
ubdobwœ
-13
-38
-284.153
-324.279
-337.649
56 objects)
ling a runtime
e temperature
birth, pdeath)
M);
tor»
rameters, pro-
process is in-
nitialized with
object samp 18
ts are created
configuration
m, and the re-
ircles and 10”
as been imple-
acts buildings
International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XXXIX-B3, 2012
XXII ISPRS Congress, 25 August — 01 September 2012, Melbourne, Australia
Figure 3: From left to right (a), (b), (c) and (d). Building extraction results using a MPP of rectangles (Tournaire et al., 2010).
from a Digital Surface Model (DSM) using a MPP of rectangles.
This implementation, which has been included in the 1ibrjmcmc
to foster reproducible research, amounts to provide the problem-
dependent object: the rectangle type, the energies and the ker-
nels. We show here results of this implementation on 4 different
DSMs (figure 3), from 10cm to 50cm Ground Sample Distance
(GSD), acquired using photogrammetry or Lidar and of various
sizes. Figures 3.a and b are on the same area which is also con-
tained in figure 3.d. The size of the dataset 3.d shows the scala-
bility of the proposed approach, even in the absence of a proper
acceleration (such as a quad tree).
Input DSM MPP
Figure Type GSD Image size | Rectangles Time
3.a Photo50em 650x 650 76 1775
3.b Lidar 50cm 650x 650 100 179s
3.c Photo 10cm 800x 1400 31 104s
3.d Photo 50cm 3634 x 2502 426 480s
5 CONCLUSIONS AND FUTURE WORK
Generic programming is very efficient at run-time and this library
showcases how modular high-level code performs well at runtime
(Abrahams and Gurtovoy, 2004). Once accustomed to the neces-
sary typedef clauses, using the library reduces to simply describ-
ing the problem at a high-level rather. Its development is how-
ever quite cumbersome, due to the extra burden allocated to the
compiler, and its lack of native language support. Until concepts
are accepted as part of C++, there are preliminary ways to bet-
ter document them and to get more legible error reporting when
the library is misused. 1ibrjmcmc now only checks the validity
of the Schedule concept as an input iterator. Future work would
be to systematically check template parameters for their intended
concept.
Implementations of close relatives of the RIMCMC algorithm,
such as jump diffusion or multiple birth and death (Descombes,
2011) would share many code parts. It would be interesting to
implement them in a common library to assess their comparative
strengths.
In the librjmcmc , complex binary or unary energy terms may
be built using expressions on simpler energies. This technique is
called a Domain-Specific Embedded Language (DSEL). It would
be nice to extend its use the whole energy formulation, kernels,
distributions, and even transforms so that, for instance, complex
transform would be able to generate their Jacobian computation
code at compile-time. This would help hiding the complex type
names produced by the generic programming and help offering
à more user-friendly interface. boost::proto is a framework to
define such DSELs, but its ease of use and runtime costs will
have to be assessed.
Finally, the 1ibrjmcmc has now only be used within a 2D MPP
context. Future interesting work would be to implement other
Configuration, Kernel and Energy models, in embedding spaces
of other dimensions (1D signals (Hernandez-Marin et al., 2007;
Mallet et al., 2010), 3D ellipses (Perrin et al., 2006)...) or even in
a non-MPP context, for instance to optimize a 3D triangulation
over the noisy heightfield of photogrammetric Digital Surface
Model. Our wish is that the open-source license of the 1ibr jmcmc
library will enable reproducible research.
References
Abrahams, D. and Gurtovoy, A., 2004. C++ template metapro-
gramming: concepts, tools, and techniques from Boost and be-
yond. C++ in-depth series, Addison-Wesley professional.
Descombes, X., 2011. Stochastic Geometry for Image Analysis.
Publ. Wiley/Iste, Hoboken, USA.
Gilviewer, 2012. A C++ library for developping applications with
2D raster and vector viewer functionalities. http://code.
google.com/p/gilviewer/.
Green, P. J., 1995. Reversible Jump Markov Chain Monte Carlo
computation and Bayesian model determination. Biometrika
vol. 82(4), pp. 711-732.
Hastings, W. K., 1970. Monte Carlo sampling using Markov
chains and their applications. Biometrica 57(1), pp. 97-109.
Hernandez-Marin, S., Wallace, A. M. and Gibson, G. J., 2007.
Bayesian analysis of lidar signals with multiple returns. IEEE
Trans. Pattern Anal. Mach. Intell. vol. 29(12), pp. 2170-2180.
librimcmc, 2012. A generic C++ library for stochastic optimiza-
tion. http://librjmomc.ign.fr.
Mallet, C., Lafarge, E, Roux, M., Soergel, U., Bretar, F. and
Heipke, C., 2010. A Marked Point Process for modeling li-
dar waveforms. IEEE Transactions on Image Processing vol.
19 (12), pp. 3204-3221.
Perrin, G., Descombes, X. and Zerubia, J., 2006. 2D and 3D
vegetation resource parameters assessment using marked point
processes. In: Proc. of the International Conference on Pattern
Recognition, Hong-Kong, China.
Salamon, P., Sibani, P. and Frost, R., 2002. Facts, conjectures and
improvements for simulated annealing. Society for Industrial
and Applied Mathematics, Philadelphia, USA.
Tournaire, O., Brédif, M., Boldo, D. and Durupt, M., 2010. An
efficient stochastic approach for building footprint extraction
from digital elevation models. ISPRS Journal of Photogram-
metry and Remote Sensing vol. 65(4), pp. 317-327.
van Lieshout, M. N. M., 2000. Markov point processes and their
applications. Imperial College Press, London, England.