<div dir="ltr">Very nice to meet you Yingjie and thank you for considering working with VTK.<div><div><br></div><div>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.</div></div><div><br></div><div>best of luck with your application!</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">David E DeMarle<br>Kitware, Inc.<br>R&D Engineer<br>21 Corporate Drive<br>Clifton Park, NY 12065-8662<br>Phone: 518-881-4909</div></div>
<br><div class="gmail_quote">On Wed, Mar 18, 2015 at 6:27 PM, Yingjie <span dir="ltr"><<a href="mailto:1275963@gmail.com" target="_blank">1275963@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span style="font-size:15px">Hi,</span><div style="font-size:15px"><br></div><div style="font-size:15px">My name is Yingjie Luan (<a href="https://github.com/y1275963" target="_blank">https://github.com/y1275963</a>) 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(<a href="https://oss.lzu.edu.cn/" target="_blank">https://oss.lzu.edu.cn/</a>).   </div><div style="font-size:15px"><br></div><div style="font-size:15px">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:</div><div style="font-size:15px"><br></div><div style="font-size:15px">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.</div><div style="font-size:15px">2. I have C++ background. Just one year ago, I implemented a laboratory management system using C++ and Qt.(<a href="https://github.com/y1275963/FinalTerm" target="_blank">https://github.com/y1275963/FinalTerm</a>) So I think I am comfortable with C++.</div><div style="font-size:15px">3. I have VTK background. Just at this semester, I was luckily enrolled in Pro. David Duck(<a href="https://www.engineering.leeds.ac.uk/people/computing/staff/d.j.duke" target="_blank">https://www.engineering.leeds.ac.uk/people/computing/staff/d.j.duke</a><span style="color:rgb(84,84,84);font-family:arial,sans-serif;font-size:small;line-height:16.5454540252686px;background-color:rgb(255,255,255)">)</span>’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”. </div><div style="font-size:15px">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.</div><div style="font-size:15px"><br></div><div style="font-size:15px">The rough idea about the implementation:</div><div style="font-size:15px"><br></div><div style="font-size:15px">After read though the paper and its related resources, I have got the idea about this algorithm. It goes like this:</div><div style="font-size:15px"><br></div><div style="font-size:15px">1. First, I need to develop a way to construct spatial filter like Gaussian pyramid or Laplace pyramid. </div><div style="font-size:15px">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) </div><div style="font-size:15px">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.</div><div style="font-size:15px">4. After adding the original signal and the amplified signal back together and collapsing the the image pyramid we should get the desired video.</div><div style="font-size:15px"><br></div><div style="font-size:15px">The technical difficulties:</div><div style="font-size:15px"><br></div><div style="font-size:15px">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)</div><div style="font-size:15px">2. The paper suggested us to use YIQ as color space, we need a filter to transfer the image into YIQ space.</div><div style="font-size:15px">3. This filter is the combination of temporal and spatial decomposition and I need to find a way to link them. </div><div style="font-size:15px">4. For visualizing motion the writer suggested a method called "phase based video motion processing” which is another topic.</div><div style="font-size:15px">5. Provide users some guide lines in determining filter parameters.</div><div style="font-size:15px">6. VTK requires threading process over images and hopefully I can do some things with parallelize.</div><div style="font-size:15px">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)</div><div style="font-size:15px"><br></div><div style="font-size:15px"><br></div><div style="font-size:15px">My rough time table goes like this,</div><div style="font-size:15px">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)</div><div style="font-size:15px"><br></div><div style="font-size:15px">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. </div><div style="font-size:15px"><br></div><div style="font-size:15px">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). </div><div style="font-size:15px"><br></div><div style="font-size:15px">My questions in terms of this paper:</div><div style="font-size:15px"><br></div><div style="font-size:15px">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:</div><div style="font-size:15px"><br></div><div><div><span style="font-size:15px">   % Temporal filtering</span></div><div><span style="font-size:15px">    disp('Temporal filtering...')</span></div><div><span style="font-size:15px">    filtered_stack = ideal_bandpassing(Gdown_stack, 1, fl, fh, samplingRate);</span></div><div><span style="font-size:15px">    disp('Finished')</span></div><div><span style="font-size:15px">    </span></div><div><span style="font-size:15px">    %% amplify</span></div><div><span style="font-size:15px">    filtered_stack(:,:,:,1) = filtered_stack(:,:,:,1) .* alpha;</span></div><div><span style="font-size:15px">    filtered_stack(:,:,:,2) = filtered_stack(:,:,:,2) .* alpha .* chromAttenuation;</span></div><div><span style="font-size:15px">    filtered_stack(:,:,:,3) = filtered_stack(:,:,:,3) .* alpha .* chromAttenuation;</span></div></div><div><span style="font-size:15px"><br></span></div><div><span style="font-size:15px">That is, the writer just filter it out and directly amplified them, but in the paper we should do </span><img height="46" width="271" src="cid:CEE9EA0E-EE3F-4E9A-9A50-709BFA2AB320@wireless.leeds.ac.uk">.  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 <img height="58" width="193" src="cid:B4A67D1A-C093-4A76-8D2E-21C82ADC4FA7@wireless.leeds.ac.uk">? So we don’t need to explicitly calculate the spatial difference and to find the motion function.</div><div><br></div><div>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)</div><div><br></div><div>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)</div><div><br></div><div>4. Am I on the right track?</div><div><br></div><div><span style="font-size:15px">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 </span><a href="http://y1275963.github.io/" style="font-size:15px" target="_blank">http://y1275963.github.io/</a><span style="font-size:15px"> 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.</span></div><span class="HOEnZb"><font color="#888888"><div><br></div><div><span style="font-size:15px">Yingjie</span></div><div><span style="font-size:15px"><br></span></div><div><br></div><div><br></div><div style="font-size:15px"><br></div></font></span></div><br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
<br></blockquote></div><br></div>