[SciPy-Dev] GSoC 2014 : Discrete Wavelets Transform

Ralf Gommers ralf.gommers at gmail.com
Tue Mar 18 17:25:51 EDT 2014


On Tue, Mar 18, 2014 at 10:36 AM, Ankit Agrawal <aaaagrawal at gmail.com>wrote:

> Hi Ralf,
>
>
>> On Tue, Mar 18, 2014 at 2:05 AM, Ankit Agrawal <aaaagrawal at gmail.com>wrote:
>>>
>>>> Hi everyone,
>>>>
>>>>         I apologize for not responding fast enough as I was consumed by
>>>> some assignment deadlines until today.
>>>>
>>>>         The draft of my proposal is ready and can be found here<https://github.com/scipy/scipy/wiki/GSoC-2014-:-Discrete-Wavelet-Transform-(draft)>.
>>>> Please review it. Any suggestions for changes/improvements are welcome.
>>>> Thanks.
>>>>
>>>> @Ralf and Stefan : Does the timeline and the chronological order of
>>>> tasks seem good to you?
>>>>
>>>
>> The order of tasks looks sensible. I would expand the descriptions in
>> some cases a little bit.
>>
>> For integration into scipy you could say what the tasks are (I expect
>> adding code and making it build is very quick, adding docs and a small
>> tutorial may be part of this task).
>>
> For 1d/2d SWT one week should be enough I think. There are Python
>> implementations already posted on the PyWavelets list, moving those to
>> C/Cython and testing them should be doable fairly quickly.
>>
>
> I found Mike Marino's code on 1d ISWT on the Pywavelets list. I would now
> prefer to put this week long task after the mid-term evaluation in
> conjunction with Sureshrink and compression algorithms and pre-pone the 2
> week task of putting a private copy of _pywt in scikit-image
>  and modifying @thearn's PR containing Bayeshrink and Visushrink before
> the mid-term evaluation. Let me know your opinion on this.
>

Changing the order sounds good to me. That PR is already in quite good
shape, and the API changes you may make in the first two weeks shouldn't
really affect it. So I suspect you'll be able to do that fairly easily.
Getting that into scikit-image allows also to get other contributors to
skimage to play with wavelets. Exercising the code more will help iron out
possible issues.

Of course I'm not a scikit-image dev, so the opinion of Stefan & co. would
be good to see.

For image compression algorithm I'd expect more details on which ones
>> exactly. Maybe worth discussing on the scikit-image list what they'd like
>> to see. JPEG 2000 isn't in the Matlab toolbox you linked but may be a good
>> candidate. I think the patent issues with JPEG are history.
>>
> There was a scikit-image thread about compression active about a month ago
> in the context of GSoC. I will discuss about the algorithms that would be
> preferred and update here.
>
>
>> You made two more PRs in the meantime, I'd link those as well. And please
>> remind me if I haven't reviewed/merged your changes to the thresholding
>> functions before the deadline.
>>
>
> I have already linked them below the timeline. I will better move them
> up(I am not sure you meant linking the closed PR relating to stats.f_oneway
> here?). Thanks a lot for the feedback.
>

https://github.com/scipy/scipy/pull/3462
https://github.com/scipy/scipy/pull/3416

They're small, but they count:)

Ralf



>
> Cheers,
>> Ralf
>>
>>
>>
>>>>
>>>> Regards,
>>>> Ankit Agrawal,
>>>> Communication and Signal Processing,
>>>> IIT Bombay.
>>>>
>>>>
>>>> On Sat, Mar 15, 2014 at 9:37 PM, Ralf Gommers <ralf.gommers at gmail.com>wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Mar 13, 2014 at 6:49 PM, Ankit Agrawal <aaaagrawal at gmail.com>wrote:
>>>>>
>>>>>>
>>>>>> On Wed, Mar 12, 2014 at 5:27 AM, Skipper Seabold <jsseabold at gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> On Tue, Mar 11, 2014 at 6:22 PM, Ankit Agrawal <aaaagrawal at gmail.com>
>>>>>>> wrote:
>>>>>>> > Hi everyone,
>>>>>>> >
>>>>>>> >          I have created a page on wiki to list the possible tasks
>>>>>>> that can
>>>>>>> > go along with the project idea of integrating `pywt` library in
>>>>>>> scipy.signal
>>>>>>> > and addition of some related algorithms(denoising and compression
>>>>>>> using
>>>>>>> > wavelets) to scikit-image and scipy.signal. Please feel free to
>>>>>>> suggest or
>>>>>>> > add any other related task. In the coming 2-3 days, I will go
>>>>>>> through some
>>>>>>> > papers and the pywt codebase to come up with better estimates of
>>>>>>> the time in
>>>>>>> > which I can complete those tasks. By the end of coming
>>>>>>> weekend(16th), I hope
>>>>>>> > to have shortlisted the tasks and the timeline for my GSoC
>>>>>>> proposal. Thanks.
>>>>>>> >
>>>>>>>
>>>>>>> Hi Ankit,
>>>>>>>
>>>>>>> I wrote up a blog post on using pywt for doing wavelet regression a
>>>>>>> while back. There are some suggestions at the bottom for things I
>>>>>>> found difficult and could easily be improved
>>>>>>
>>>>>>
>>>>> Would be useful to get more suggestions like this. Because the API is
>>>>> more or less fixed after one release, ideas that improve that API should be
>>>>> prioritized I think. So far I've kept compatibility with upstream so that
>>>>> it would be easy to contribute back, but it's now clear that upstream is
>>>>> dead.
>>>>>
>>>>> Some things that need changing or a closer look:
>>>>> - the thresholding functions cannot keep their current names. Probably
>>>>> should be a single function instead of four.
>>>>> - the tuple of tuples of approximation coefficients returned by
>>>>> dwt/swt/wavedec functions is ugly. Some container class with a few useful
>>>>> methods would be nicer.
>>>>> - the very different approach in the dwt/swt versus the wavelet
>>>>> packets is quite odd.
>>>>> - also some renaming is in order: `MODES` is not PEP8 compliant, `qmf`
>>>>> is already used in scipy.signal, `families` is too generic,
>>>>> upcoef/downcoef/scal2frq/orthfilt are not very informative.
>>>>>
>>>>> Ralf
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>  like making pywt a little
>>>>>>> more consistently object-oriented to save some keystrokes.
>>>>>>>
>>>>>>
>>>>>> Hi Skipper,
>>>>>>
>>>>>>          Great blog post. What are your suggestions for some objects
>>>>>> that could be introduced? For instance in your blog post example, you hint
>>>>>> of a wavelet object that holds the coefficient arrays returned from
>>>>>> `wavedec`, so that it could be passed to threshold functions. If I
>>>>>> understand your use case correctly, won't this be a bit less generic in
>>>>>> cases where you want only a subset of coefficient arrays to be thresholded?
>>>>>>
>>>>>>
>>>>>>> Feel free to use any of this example code as well, if you think it
>>>>>>> could find a home somewhere.
>>>>>>>
>>>>>>
>>>>>> The example could find a home in tutorial section. Thanks.
>>>>>>
>>>>>> http://jseabold.net/blog/2012/02/23/wavelet-regression-in-python/
>>>>>>>
>>>>>>> Skipper
>>>>>>> _______________________________________________
>>>>>>> SciPy-Dev mailing list
>>>>>>> SciPy-Dev at scipy.org
>>>>>>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> SciPy-Dev mailing list
>>>>>> SciPy-Dev at scipy.org
>>>>>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> SciPy-Dev mailing list
>>>>> SciPy-Dev at scipy.org
>>>>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> SciPy-Dev mailing list
>>> SciPy-Dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>>>
>>>
>>
>> _______________________________________________
>> SciPy-Dev mailing list
>> SciPy-Dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>>
>>
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20140318/01e8b5ec/attachment.html>


More information about the SciPy-Dev mailing list