Hi,

On Mon, Aug 10, 2015 at 6:56 PM, remicres <[email protected]> wrote:

> Hi,
>
> I've just commited a remote module on GitHub wich deals with image mosaics
> generation (https://github.com/remicres/otb-mosaic.git).
> Provided are mosaicing filters and one application.
> All filters support streaming. The application performs the mosaic
> generation of multiple images, whith some color/radiometric harmonization
> features, and feathering features (Details are provided above*)
>
> I hope that you will try and enjoy it. Keep me updated about issues ! Feel
> free to ask questions, if any.
>

I tried to setup nightly build for your remote module but didnt work.

here is the dasboard output:
http://dash.orfeo-toolbox.org/buildSummary.php?buildid=194873

>From first look,

you have all code in app folder include .h and .hxx.

but otb remote module needs:

all library code in src/*.h *.txx (  .txx is because all other modules use
it that way. you need to confirm with someone else in the list)

all application code in app/

Also please add a file like the below in your git repo.

https://github.com/jmichel-otb/GKSVM/blob/master/GKSVM.remote.cmake


>
> Cheers,
>
> Rémi
>
>
>
>
>
> * The application:
>
>    - From a given input images list, a mosaic is produced. The pipeline
>    supports streaming, so there is no restriction on images number or size.
>    - It implements a color harmonization method explained on our paper:
>    Cresson R., Saint-Geours N., "Natural Color Satellite Image Mosaicking
>    Using Quadratic Programming in Decorrelated Color Space"IEEE Journal of
>    Selected Topics in Applied Earth Observations and Remote Sensing (Volume:PP
>    ,  Issue: 99) July 2015
>    
> <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7154397&filter%3DAND%28p_IS_Number%3A4609444%29>.
>    In brief, it performs the global colorimetric harmonization of overlapping
>    images in natural colors (i.e. input images must have 3 bands, RGB). You
>    can set the application parameter "-harmo.method" to "rgb" to use this
>    feature. However, the global radiometric harmonization can also be
>    performed on each band individually by setting the application parameter
>    "-harmo.method" to "band" (it can be useful if the color space is not truly
>    RGB like raw Spot6/7, or if you want to perform a kind of radiometric
>    equalized mosaic). Various statistical cost functions can be used (e.g.
>    rmse) to find a correction model (which is linear with zero-y intercept:
>    input images are scaled). We have developed a richer harmonization solver,
>    wich can deal with general linear correction models (i.e. scale, and shift
>    scale of images) but the maths tools brought by VNL were not sufficient,
>    and we had to make use of external libraries to make it work (OOQP,
>    QuadProg++). That is why we brought only simple zero-y intercept (i.e.
>    scale) correction model in this current module. In future release, I think
>    we should propose OOQP based (or QuadProg++ based) solver because it is far
>    more robust than VNL routines (Sometimes VNL's routines throw unexpected
>    errors, obviously coming from numerical instabilities). Waiting what will
>    be the OTB framework for third parties...
>    - As the harmonization method rely of local image statistics, those
>    must be exempt from perturbations (e.g. clouds, ice, brutal landcover
>    change between two images, ...). That's why it is possible to input some
>    vector data to mask valid areas (need one vector data for one input image,
>    in the same order as appearing in input).
>    - It is possible to input some vector data for cutline (need one
>    vector data for one input image, in the same order as appearing in input).
>    - Another cool feature is the feathering/blending of input images,
>    which allows to produce seamless mosaics. The current limitation is that we
>    use a distance map image for each input, computed by
>    itk::DanielssonDistanceMapImageFilter wich is not a streamable filter.
>    That's why the current process first generates all distance map images in
>    temporary .tif files, from resampled input images (the decimation factor
>    can be set using the "-alphamasks.spacing"). Then, the filters use these
>    previously computed distance map images to perform the feathering/blending
>    of the input images. At the moment, 2 feathering methods are implemented
>    (slim: blends the last image over earlier ones in areas of overlap, on a
>    given transition distance / large: blends all images on largests possible
>    overlapping areas)
>
> We tested the application successfully on big images collections:
> RapidEye, France coverage from 2011 (~130 images), Spot6/7, France coverage
> from 2014 (~190 images), both with a reasonable processing time. Processing
> time is o(n) for both mosaic generation and statistics computation
> (n=number of input images pixels). Harmonization problem is solved in o(m)
> with m=number of input images (about some milliseconds for a hundred of
> input images).
>
> The filters:
>
>    - otbStreamingMosaicFilterBase: is the base class of all mosaicing
>    filters
>    - otbStreamingSimpleMosaicFilter: inherits
>    otbStreamingMosaicFilterBase, performs simple mosaics with a simple
>    compositing technique which copies the last image over earlier ones in
>    areas of overlap
>    - otbStreamingStatisticsMosaicFilter: inherits
>    otbStreamingMosaicFilterBase, computes statistics of the input images in
>    each overlapping areas (e.g. mean of image i in overlap j, for all i and j)
>    - otbStreamingMosaicFilterWithBlendingBase: inherits
>    otbStreamingMosaicFilterBase, is the base class for all mosaicing filters
>    which use a distance map image (feathering filters...)
>    - otbStreamingFeatherMosaicFilter: inherits
>    otbStreamingMosaicFilterWithBlendingBase, generates a mosaic with blends
>    the last image over earlier ones in areas of overlap, on a given transition
>    distance
>    - otbStreamingLargeFeatherMosaicFilter: inherits
>    otbStreamingMosaicFilterWithBlendingBase, blends all images on largests
>    possible overlapping areas
>    - otbStreamingMultibandFeatherMosaicFilter: inherits
>    otbStreamingFeatherMosaicFilter, experimental. Multiband blending of input
>    image using the laplacian (see Burt & Adelson "A multiresolution spline
>    with application to image mosaics"). Could use GPU support for gaussian
>    filtering. One need to fix some issues related to side effects (around no
>    data pixels of images).
>    - otbSummingFilter: utility filter which sums input images.
>    - otbQuadraticallyConstrainedSimpleSolver: is the solver used for
>    images color/radiometric harmonization. Works only with zero-y intercept
>    correction models (as explained before).
>
> We try to make sense of this multilevel inheritance, but it might be
> perfectible !
> A possible optimization might be to process every threadedRegion by
> subdividing it in multiple smaller regions, in order to loop only on
> relevant images: an actual drawback is where the threadedRegion is large,
> a lot of input images have to be checked even if they are out of the
> region. Another one might be to pre-compute areas where interpolators can
> work, instead of checking every processed pixel if the current point is
> inside the buffer.
> On excellent upgrade would be to strengthen the architecture, and
> implements those optimizations in a general way (currently, we have to do
> it for each filter... that is why I think this could be better built)
>
> --
> --
> Check the OTB FAQ at
> http://www.orfeo-toolbox.org/FAQ.html
>
> You received this message because you are subscribed to the Google
> Groups "otb-users" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/otb-users?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "otb-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Regards,
   Rashad

-- 
-- 
Check the OTB FAQ at
http://www.orfeo-toolbox.org/FAQ.html

You received this message because you are subscribed to the Google
Groups "otb-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/otb-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"otb-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to