[vtk-developers] GSOC "VTK Implementation of Eulerian Magnification for Revealing Subtle Changes" Proposal

David E DeMarle dave.demarle at kitware.com
Thu Mar 19 16:26:39 EDT 2015

Very nice to meet you Yingjie and thank you for considering working with

Your proposal looks great so far. To the best of my knowledge right now,
your plan looks like a good one. When the time comes for picking from and
implementing new things in VTK (threading and all) we'll be able to get you
up to speed. Falling back to ITK is also perfectly acceptable and we can
help with that too if that turns out to be most effective.

best of luck with your application!

David E DeMarle
Kitware, Inc.
R&D Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909

On Wed, Mar 18, 2015 at 6:27 PM, Yingjie <1275963 at gmail.com> wrote:

> Hi,
> My name is Yingjie Luan (https://github.com/y1275963) and I am current a
> transfer student from University of Leeds in UK and back at home in China
> my home university is Lanzhou university. I am currently a year 3
> undergraduate student studying electronic engineering. Since I was enrolled
> in the university I have been keen on programming and back at my home I was
> the elect member of open source society in Lanzhou University(
> https://oss.lzu.edu.cn/).
> I am currently targeting at the project called “Eulerian Magnification for
> revealing subtle changes”. The reasons why I love this project are the the
> following:
> 1. I am really interested in implementing all sorts of artificial
> algorithms. Just one year ago, I was luckily allowed to work at the
> mathematical laboratory at my home university during the winter holiday.
> And at that time I spent a great deal of time studying implementing
> artificial algorithms like BP Neural network, Generic Algorithm and
> simulating annealing. I love to read papers and documentations and write
> code.
> 2. I have C++ background. Just one year ago, I implemented a laboratory
> management system using C++ and Qt.(https://github.com/y1275963/FinalTerm)
> So I think I am comfortable with C++.
> 3. I have VTK background. Just at this semester, I was luckily enrolled in
> Pro. David Duck(
> https://www.engineering.leeds.ac.uk/people/computing/staff/d.j.duke)’s
> module called “Scientific Visualization” within which we are discussing a
> way to visualize data from early universe using VTK. And Pro. David Duke is
> the developer of the VTK class called “vtkSpanTreeLayoutStrategy”.
> 4. The most significant reason why I think I am suitable for this position
> is that I think I am a dedicated person and I am self-motivated. I asked
> Pro Wang to allow me to work at his mathematical laboratory. Although I am
> not allowed to be enrolled in the C++ module back at my home university, I
> managed spent my spare time to attend all my professor’s classes and finish
> his final project just as same as his enrolled student( Or even better
> because I leant Qt at the same time). The module called “Scientific
> Visualization” is for master student but after consulting Pro. David I was
> allowed to be enrolled and I think my performance is not worse than those
> master students. I think as long as I am willing to devote all my time onto
> this project I will be fine.
> The rough idea about the implementation:
> After read though the paper and its related resources, I have got the idea
> about this algorithm. It goes like this:
> 1. First, I need to develop a way to construct spatial filter like
> Gaussian pyramid or Laplace pyramid.
> 2. Second, after I have decomposed the video in spatial domain I then
> apply temporal filter onto it. (like ideal filter, Butterworth filter or
> second-order IIR filter)
> 3. Third, I then amplify the filtered signal according to the description
> in the document. Basically what I need to do is to avoid huge magnification
> errors by setting approximation limit.
> 4. After adding the original signal and the amplified signal back together
> and collapsing the the image pyramid we should get the desired video.
> The technical difficulties:
> 1. We only have a Gaussian low pass filter and we don’t have filter to
> construct Gaussian pyramid or Laplace pyramid.( We have one in ITK)
> 2. The paper suggested us to use YIQ as color space, we need a filter to
> transfer the image into YIQ space.
> 3. This filter is the combination of temporal and spatial decomposition
> and I need to find a way to link them.
> 4. For visualizing motion the writer suggested a method called "phase
> based video motion processing” which is another topic.
> 5. Provide users some guide lines in determining filter parameters.
> 6. VTK requires threading process over images and hopefully I can do some
> things with parallelize.
> 7. To be honest, my biggest concern is how to build VTK filter and that is
> area I am going to work really hard onto(Like how to implement Requestdata
> function, how to work with images or even time varying images, where should
> my filter inherent from)
> My rough time table goes like this,
> 1.  I decide to go before the start of the project and I hope by the 25th
> May I can get a functioning model using scripting language like MATLAB and
> I can get myself familiar with the VTK environment(Especially, writing VTK
> filter for time-varying processing)
> 2.  I will do my best during the first term of the GSOC. And within that
> period I first will do as best as I can to implement the Gaussian pyramid,
> Laplace pyramid and YIQ converter. After that, I will combine the designed
> spatial filter with the pre-existing temporal filter and FFT in VTK to
> build a functioning model in VTK. And I guarantee I can finish this before
> 3rd July.
> 3. After I have got the functioning model, I then can do some advanced
> topics in the second part of my term, like supporting parallelize,
> implementing phase-based pipeline or write a example about this filter(
> This is important because we need to give user guide line in terms of how
> to select the filter parameters, like amplify ratio and what kind of
> schema).
> My questions in terms of this paper:
> 1. I dug into the MATLAB code provided and I am right now trying to
> implement the simplest one which is gaussian pyramid along with ideal
> filter, and I saw it goes like this:
>    % Temporal filtering
>     disp('Temporal filtering...')
>     filtered_stack = ideal_bandpassing(Gdown_stack, 1, fl, fh,
> samplingRate);
>     disp('Finished')
>     %% amplify
>     filtered_stack(:,:,:,1) = filtered_stack(:,:,:,1) .* alpha;
>     filtered_stack(:,:,:,2) = filtered_stack(:,:,:,2) .* alpha .*
> chromAttenuation;
>     filtered_stack(:,:,:,3) = filtered_stack(:,:,:,3) .* alpha .*
> chromAttenuation;
> That is, the writer just filter it out and directly amplified them, but in
> the paper we should do .  Is this true we just assume motion signal is
> within the passband of the temporal bandpass filter that after applying the
> filter what we get is ? So we don’t need to explicitly calculate the
> spatial difference and to find the motion function.
> 2. The color magnification is fairly easy, I still need some work to
> understand the maximum application ratio theory for movement
> magnification.( Like applying different ratio for each spectral components
> of the movement signal)
> 3. There is no ideal bandpass filter in VTK should I use
> vtkWindowedSincPolyDataFilter or vtkSmoothPolyDataFilter or implementing my
> own?( I think those two filter are all for smoothing and is not for
> frequency filtering)
> 4. Am I on the right track?
> In summery, I hope I can be enrolled in this project and I will do my best
> not to let my mentor down. I have set up my blog at
> http://y1275963.github.io/ and my current progress is that I have
> finished the paper and I am digging into how to implement the pyramids. And
> I will write a post on my blog as soon as I got the result. I appreciate
> your valuable time in reading my proposal and I am looking for your
> feedback.
> Yingjie
> _______________________________________________
> Powered by www.kitware.com
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> Search the list archives at: http://markmail.org/search/?q=vtk-developers
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtk-developers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20150319/3f841e8c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2015-03-18_22-02-24.png
Type: image/png
Size: 6710 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20150319/3f841e8c/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2015-03-18_22-00-52.png
Type: image/png
Size: 7578 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20150319/3f841e8c/attachment-0003.png>

More information about the vtk-developers mailing list